【发布时间】:2017-06-15 06:34:55
【问题描述】:
我想使用 GO 从 pdf 文件中提取文本。 我尝试使用实现 GetPlainText() 方法的 ledongthuc/pdf Go 包来获取没有格式的纯文本内容。 但我没有得到纯文本。结果是:
W
S
D
V
Y R
O
R
Q
W
D
L
U
H
P
H
Q
W
......
Go 代码
package main
import (
"bytes"
"fmt"
"github.com/ledongthuc/pdf"
)
func main() {
content, err := readPdf("test.pdf")
if err != nil {
panic(err)
}
fmt.Println(content)
return
}
func readPdf(path string) (string, error) {
r, err := pdf.Open(path)
if err != nil {
return "", err
}
totalPage := r.NumPage()
var textBuilder bytes.Buffer
for pageIndex := 1; pageIndex <= totalPage; pageIndex++ {
p := r.Page(pageIndex)
if p.V.IsNull() {
continue
}
textBuilder.WriteString(p.GetPlainText("\n"))
}
return textBuilder.String(), nil
}
【问题讨论】:
-
我尝试了几个 PDF,库确实为一个文件返回纯文本,而不为另一个文件返回(只是垃圾字符和少量实际文本)。最好和开发者联系。
-
似乎 Go 方式仍然不存在。也许您应该尝试从 Go 调用另一个库? (Apache Tika 效果不错)