我不懂类型转换。我知道这不对,我得到的只是一堆象形文字。f, _ := os.Open("test.pdf") defer f.Close() io.Copy(os.Stdout, f)我想和弦一起工作…
f, _ := os.Open("test.pdf") defer f.Close() io.Copy(os.Stdout, f)
iugsix8n1#
我尝试了一些go pdf库,发现sajari/docconv像我期望的那样工作。易于使用,这里有一个例子:
package main import ( "fmt" "log" "code.sajari.com/docconv" ) func main() { res, err := docconv.ConvertPath("your-file.pdf") if err != nil { log.Fatal(err) } fmt.Println(res) }
ntjbwcob2#
这是因为PDF不仅包含文本,而且还包含格式(字体,填充,边距,位置,形状,图像)信息。如果您需要阅读没有格式的纯文本。我已经创建了一个存储库并实现了该功能。您可以在https://github.com/ledongthuc/pdf上查看我也举了一个例子,对你有用。
package main import ( "bytes" "fmt" "github.com/ledongthuc/pdf" ) func main() { content, err := readPdf("test.pdf") // Read local pdf file 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 }
iaqfqrcu3#
我得到的只是一堆象形文字你得到的是一个pdf文件的内容,不是明文。如果你想在Go中读取一个pdf文件,使用one of the golang pdf libraries,比如rsc.io/pdf,或者使用those libraries,比如yob/pdfreader。如mentioned here:我怀疑这种东西是否有任何“坚实的框架”。PDF格式在设计上并不意味着是机器友好的,而且AFAIK没有保证的方法来解析任意的PDF。
rsc.io/pdf
yob/pdfreader
2w3kk1z54#
你可以尝试将pdf2go lib与流行的:pdf2go
4条答案
按热度按时间iugsix8n1#
我尝试了一些go pdf库,发现sajari/docconv像我期望的那样工作。
易于使用,这里有一个例子:
ntjbwcob2#
这是因为PDF不仅包含文本,而且还包含格式(字体,填充,边距,位置,形状,图像)信息。
如果您需要阅读没有格式的纯文本。我已经创建了一个存储库并实现了该功能。您可以在https://github.com/ledongthuc/pdf上查看
我也举了一个例子,对你有用。
iaqfqrcu3#
我得到的只是一堆象形文字
你得到的是一个pdf文件的内容,不是明文。
如果你想在Go中读取一个pdf文件,使用one of the golang pdf libraries,比如
rsc.io/pdf
,或者使用those libraries,比如yob/pdfreader
。如mentioned here:
我怀疑这种东西是否有任何“坚实的框架”。PDF格式在设计上并不意味着是机器友好的,而且AFAIK没有保证的方法来解析任意的PDF。
2w3kk1z54#
你可以尝试将pdf2go lib与流行的:pdf2go