【问题标题】:How to extract plain text from PDF in golang如何在golang中从PDF中提取纯文本
【发布时间】: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 效果不错)

标签: pdf go text extract


【解决方案1】:

您可以收到诸如“pdf 文档示例”之类的消息。而不是

Ex
a
m
pl
e

of

a

pd
f

doc
u
m
e
nt
.

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

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

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-01-27
    • 2019-12-05
    • 2023-04-02
    • 2016-09-12
    • 2010-12-05
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多