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

我正在使用pdftotext(poppler-utils的一部分)将PDF文档转换为文本。 它在很大程度上起作用,但我希望它做的一件事是在单独的段落之间插入空行而不是将它们混合在一起。

有没有办法让pdftotext这样做? 如果没有,是否还有另一个pdf to text实用程序可以执行此操作?

您可以尝试从Calibre进行 ebook-convert

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

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

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

 pdftotext -layout input.pdf output.txt 

作为开源(和自动化)的粉丝,我讨厌这样说,但我刚刚得到的最好的结果(在相当大的复杂PDF上)是在Adobe Reader中打开它,然后选择File | Save As Text。

(我正在预处理文本分析实验,而不是读者,但我认为我的第一和第二选择是相同的。)

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

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

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

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

pdftotext(带–layout) :类似,但更多缩进。 “他是”开始章节。

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

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

我还尝试了pypdf并将其与两个文档中的pdftotext进行了比较。 它有更多的换行符并拆分了一些部分名称(REFERENCES是REFERENCES)。

pdf2txt确实输出了完整的垃圾。

如果pdftotext搞砸了输出,我经常使用pdfBox(java)。 你可以尝试一下。