我找到了许多帖子,其中提出了阅读pdf的解决方案。我想逐字阅读pdf文件并对其进行一些处理。人们建议pdfMiner将整个pdf文件转换为文本文件。但我想要的是逐字逐句阅读pdfs。任何人都可以建议一个这样做的图书馆吗?
答案 0 :(得分:7)
执行此操作的最快方法可能是首先使用pdftotext将pdf inta转换为文本文件(在pdfMiner的网站上,有一条声明pdfMiner比pdftotext慢20倍),然后将文本文件解析为通常
另外,当你说“我想逐字阅读pdf文件并对其进行处理”时,你没有指定是否要根据pdf文件中的文字进行处理,或者你是否真的想要修改pdf文件本身。如果这是第二种情况,那么你手上就会遇到完全不同的问题。
答案 1 :(得分:5)
我正在使用pdfminer,它是一个优秀的lib,特别是如果你在python中编程很舒服。它读取PDF并提取每个字符,并将其边界框提供为元组(x0,y0,x1,y1)。 Pdfminer将提取矩形,线条和一些图像,并将尝试检测单词。它有一个令人不快的O(N ^ 3)例程,它分析边界框以合并它们,因此它可能会在某些文件上变得非常慢。尝试转换您的典型文件 - 也许它对您来说很快,或者可能需要1小时,具体取决于文件。
您可以轻松地将pdf作为文本转储出来,这是您应该为应用程序尝试的第一件事。您也可以转储XML(参见下文),但不能修改PDF。 XML是您可以从中获得的最完整的PDF表示。
你必须通读这些例子才能在你的python代码中使用它,它没有太多的文档。
将PDF转换为xml的PdfMiner附带的示例显示了如何在代码中使用lib。它还向您展示了以人类可读(就xml而言)形式提取的内容。
您可以使用参数调用它来告诉它“分析”pdf。如果你这样做,它会将字母合并成文本块(单词和句子;句子将有空格,因此很容易在python中标记为单词)。
答案 2 :(得分:1)
虽然我真的很喜欢pdfminer的答案,但我会说包装随着时间的推移而不一样。 Currenlty pdfminer仍然不支持Python3,可能需要更新。 所以,要更新主题 - 即使答案已经投票 - 我建议从网站上pdfrw:
- 版本0.3经过测试,适用于Python 2.6,2.7,3.3,3.4和3.5 操作包括子集化,合并,旋转,修改元数据等
- 最快的纯Python PDF解析器已经被印前制作中的打印机使用了多年
- 可与rst2pdf一起使用,忠实再现矢量图像
- 既可以单独使用,也可以与reportlab一起使用,以便在新的PDF中重复使用现有的PDF
- 获得许可