有没有比 pdftotext 更好的 pdf 到文本转换器?

dan*_*dan 71 pdf conversion

我正在使用 pdftotext(poppler-utils 的一部分)将 PDF 文档转换为文本。它在大多数情况下都有效,但我希望它做的一件事是在不同的段落之间插入空行,而不是将它们混合在一起。

有没有办法让 pdftotext 做到这一点?如果没有,是否有另一个 pdf to text 实用程序可以做到这一点?

小智 125

如果您使用的是pdftotext,则可以使用该-layout标志来保留输入 pdf 文件中页面上的文本布局:

pdftotext -layout input.pdf output.txt
Run Code Online (Sandbox Code Playgroud)

  • 还有 -table 专门用于表格布局,效果很好。 (6认同)
  • @P.Windridge,这个表格选项在哪里?我在 Ubuntu 17.04 中的 poppler-utils 的 0.48.0 版本上找不到它 (3认同)
  • @gozzilli 那太老了。最新的 pdftotext 是 v4.00,可在 _Xpdf 工具_tarball [这里](https://www.xpdfreader.com/download.html) 中找到。 (2认同)
  • @gozzilli 以 0 开头的版本表示它是 Xpdf 原始代码的 Popples 分支。他们在分支代码时重新开始他们的版本号。现在,这两个团体似乎都维护这些 PDF 工具的不同版本。 (2认同)

fra*_*ous 26

你可以尝试ebook-convert口径。

如果有的话,我会说它在另一个方向上犯了错误:换行太多。

我肯定会考虑的另一件事是使用pdfreflow转换为 HTML ,然后将 HTML 转换为 TXT。


Dar*_*ook 14

作为开源(和自动化)的粉丝,我讨厌这么说,但我刚刚得到的最好结果(在相当大的复杂 PDF 上)是在 Adob​​e Reader 中打开它,然后选择文件|另存为文本。

(我是为文本分析实验做预处理,不是作为读者,但我认为我的第一和第二选择是一样的。)

我一直在并排比较输出。我的第二个选择是电子书转换。

Adobe:保留在 FF 中用于分页,保留在页码中,尚未将标题/段落转换为单行,但它具有固定的连字符。隐藏在 PDF 中的垃圾没有得到输出。在部分的开头正确地使用大写字母,例如“The”,而不是“T he”甚至“T he”。

ebook-convert:留在页码中,页眉/页脚中有一些隐藏的垃圾(但没有 FF)。将大多数段落转换为单行。不过,它错过的那些是双倍行距的!项目符号并不总是与文本对齐。在本章的开头正确地得到了“The”。

pdftotext(没有--layout):不错,子弹排成一行,但页眉/页脚噪音。FF在那里。连字符已删除。最糟糕的章节开头大写字母:“T\n\nhe”。

pdftotext (with --layout):类似,但缩进更多。“他”为章节的开始。

pdftohtml >> pdfreflow >> htmltotext:它删除了页码,但在页眉/页脚中仍然是垃圾。“他”为章节的开始。连字符已删除。(它每段使用多行,但它们与其他版本中的换行符不同!)

  • @ThomIves 我在 Ubuntu 上(The Poppler Developers 的版本 20.09.0)上没有看到“pdftotext”命令的“-table”选项。然而,“-layout”选项很有用。 (2认同)

xan*_*gua 5

如果您有 Google 帐户,则可以使用 Google Docs 上传 PDF 并将其转换为可编辑的文本。