如何从PDF中提取格式化的文本内容

16

我该如何从PDF中提取文本内容(而不是图片),同时大致保留样式和布局,就像Google Docs可以做到的那样?

6个回答

11

要从PDF中提取文本并获取其位置,您可以使用PDFMiner。 PDFMiner还可以将PDF直接导出为HTML,保持文本在正确的位置。

我不知道您的用例,但这样做可能会遇到很多问题,因为PDF确实是面向演示而不是内容,文本流不连续。因此,如果您想使文本可编辑,这将不是一项易于完成的任务。


这个软件包在Ubuntu下的名称是python-pdfminer,命令是pdf2txt - naught101

7

您尝试过使用pyPDFReportLab PDF库吗?我个人没有使用过它们,但您可以尝试一下。这里的链接也很有用。


4
如果你想像谷歌一样做到这一点:
谷歌将PDF转换为图像,然后用JavaScript可突出显示区域(就像巫术一样)覆盖图像,在文本位置上。当您用鼠标滚动到它们上方时,这些区域看起来像文本,但实际上不是。这可能对您没有帮助,但这就是他们的做法。如果您想进行反向工程,可以从https://www.mercurial-scm.org/开始。在主页上,他们使用JavaScript执行相同的操作,使文本可突出显示和可复制。您可以从PDF中提取文本,并使用其他答案中提到的库之一找到其在页面中的位置。然后,您可以使用相同风格的JavaScript区域叠加提取的文件图像。

啊,你说得对 - 他们正在使用图像,这不是我想要的,因为我需要操作文本。 - hoju

4

3
如果您不一定要使用Python,Ghostscript可以为您完成此操作。请查看pdf2ascii(附带GS的脚本)以获取纯文本。样式更加复杂,因为它们可以用几种不同的方式指定。

3
Acrobat专业版可以完成这项任务。在“文件”菜单中,选择导出。然后,选择文本(Text)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接