PDFMiner-获取文本行



我正在使用PDFMiner Python库,使用这个SO答案中提供的代码片段,将PDF文件转换为文本。问题是PDF是三列格式的,我需要阅读每一行。然而,我得到的文本是无序的:有时混合第一列和第二列,有时混合第三列。。。由于文本没有遵循任何逻辑顺序,我无法解析每一行。那么,有什么方法可以使用PDFMiner获取PDF文件的每一行吗?

编辑:

PDFMiner附带了一个命令行工具pdf2txt.py,用于将PDF转换为文本。使用它并将0.05设置为单词边距,我可以获得格式更好的文本,但无法达到目的。

我在解析表*时也有类似的情况。对我有效的是排除HTML。然后,您可以解析HTML表并将表标记考虑在内(请参阅HTMLParser的python文档)。

我的两美分:)

*将单词中的表格复制到QT TextEdit小部件中。小部件接受富文本,但如果将表导出为文本,则会将其搞砸。导出为HTML,解析HTML,获取数据:)这是在工作中完成的,这里没有代码。

在处理类似的问题时,我偶然发现了这个问题的某种解决方案。您可以按如下方式设置extract_text的LAParams:

from pdfminer.layout import LAParams
laparams = LAParams(boxes_flow=None)

然后通过使用extract_text的地方:

text = extract_text(filename, laparams= laparams)

通过这种方式,我得到的文本更能代表实际PDF页面的水平和垂直布局。

相关内容

  • 没有找到相关文章

最新更新