2017-06-15 302 views
1

我想使用GO從pdf文件中提取文本。 我試着用ledongthuc/pdf Go包來實現方法GetPlainText()來獲取沒有格式的純文本內容。 但我沒有得到明文。我有一個結果:如何從PDF中提取純文本golang

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 
} 
+2

我已經嘗試了幾個PDF文件,庫確實返回一個文件的純文本不會返回另一個文件(只是垃圾字符和幾個實際文本)。與開發人員聯繫更好。 – jeevatkm

+0

似乎Go的方式仍然不存在。也許你應該嘗試從Go調用另一個庫? (Apache Tika的工作很不錯) – Kiril

回答

0

你可以有一個消息,例如 「PDF文檔爲例。」而不是

Ex 
a 
m 
pl 
e 

of 

a 

pd 
f 

doc 
u 
m 
e 
nt 
. 

你需要做的是改變textBuilder.WriteString(p.GetPlainText("\n"))

textBuilder.WriteString(p.GetPlainText(""))

我希望這有助於。