我不明白類型轉換。我知道這是不對的,我得到的只是一堆象形文字。用golang從PDF中提取單詞?
f, _ := os.Open("test.pdf") defer f.Close() io.Copy(os.Stdout, f)
我想用串工作....
我不明白類型轉換。我知道這是不對的,我得到的只是一堆象形文字。用golang從PDF中提取單詞?
f, _ := os.Open("test.pdf") defer f.Close() io.Copy(os.Stdout, f)
我想用串工作....
我得到的是一堆的象形文字。
你得到的是一個pdf文件的內容,它不是明文。
如果你想讀在Go的PDF文件,使用one of the golang pdf libraries像rsc.io/pdf
,或those libraries像yob/pdfreader
之一。
我懷疑是這種東西任何「堅實的框架」。 PDF格式的設計並不意味着對機器友好,AFAIK也沒有保證解析任意PDF的方法。
這是因爲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
}
我嘗試了一些去pdf庫,發現sajari/docconv作品像我期望的那樣。
使用方便,這裏是一個例子:
package main
import (
"fmt"
"log"
"github.com/sajari/docconv"
)
func main() {
res, err := docconv.ConvertPath("your-file.pdf")
if err != nil {
log.Fatal(err)
}
fmt.Println(res)
}
我有你的lib一個錯誤,但它不可能可以張貼在'ledongthuc/pdf' Git的問題。 – LeMoussel
@LeMoussel,不知道爲什麼你不能在我的項目中創建問題。但無論如何,你可以問這裏發送錯誤,我會盡力幫你 –
@樂東Thuc:請參閱[如何從PDF中提取純文本在golang](https://stackoverflow.com/questions/44560265/how- to-extract-plain-text-from-pdf-in-golang) – LeMoussel