我正在使用 pdftotext(poppler-utils 的一部分)将 PDF 文档转换为文本。它在大多数情况下都有效,但我希望它做的一件事是在不同的段落之间插入空行,而不是将它们混合在一起。
有没有办法让 pdftotext 做到这一点?如果没有,是否有另一个 pdf to text 实用程序可以做到这一点?
小智 125
如果您使用的是pdftotext,则可以使用该-layout标志来保留输入 pdf 文件中页面上的文本布局:
pdftotext -layout input.pdf output.txt
Run Code Online (Sandbox Code Playgroud)
Dar*_*ook 14
作为开源(和自动化)的粉丝,我讨厌这么说,但我刚刚得到的最好结果(在相当大的复杂 PDF 上)是在 Adobe 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:它删除了页码,但在页眉/页脚中仍然是垃圾。“他”为章节的开始。连字符已删除。(它每段使用多行,但它们与其他版本中的换行符不同!)