Skip to content

Commit 826abbb

Browse files
committed
Support BT with break line
1 parent 29d4931 commit 826abbb

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

page.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,9 @@ func (p Page) GetPlainText(fonts map[string]*Font) (result string, err error) {
538538

539539
var textBuilder bytes.Buffer
540540
showText := func(s string) {
541+
textBuilder.WriteString(s)
542+
}
543+
showEncodedText := func(s string) {
541544
for _, ch := range enc.Decode(s) {
542545
_, err := textBuilder.WriteRune(ch)
543546
if err != nil {
@@ -558,8 +561,10 @@ func (p Page) GetPlainText(fonts map[string]*Font) (result string, err error) {
558561
// Easier debug
559562
// fmt.Println("<DEBUG><op>", op, "</op><args>", args, "</args>")
560563
return
561-
case "T*": // move to start of next line
564+
case "BT": // add a space between text objects
562565
showText("\n")
566+
case "T*": // move to start of next line
567+
showEncodedText("\n")
563568
case "Tf": // set text font and size
564569
if len(args) != 2 {
565570
panic("bad TL")
@@ -583,13 +588,13 @@ func (p Page) GetPlainText(fonts map[string]*Font) (result string, err error) {
583588
if len(args) != 1 {
584589
panic("bad Tj operator")
585590
}
586-
showText(args[0].RawString())
591+
showEncodedText(args[0].RawString())
587592
case "TJ": // show text, allowing individual glyph positioning
588593
v := args[0]
589594
for i := 0; i < v.Len(); i++ {
590595
x := v.Index(i)
591596
if x.Kind() == String {
592-
showText(x.RawString())
597+
showEncodedText(x.RawString())
593598
}
594599
}
595600
}

0 commit comments

Comments
 (0)