使用 Python 解析 PDF - 提取格式化文本和纯文本 [关闭]
Posted
技术标签:
【中文标题】使用 Python 解析 PDF - 提取格式化文本和纯文本 [关闭]【英文标题】:PDF Parsing Using Python - extracting formatted and plain texts [closed] 【发布时间】:2010-12-23 08:06:14 【问题描述】:我正在寻找可以让我从 PDF 文档中提取文本的 PDF 库。我看过 PyPDF,它可以很好地从 PDF 文档中提取文本。这样做的问题是,如果文档中有表格,表格中的文本将与文档的其余部分一起被提取。这可能会产生问题,因为它会生成无用且看起来乱码的文本部分(例如,大量数字混在一起)。
我想从 PDF 文档中提取文本,排除任何表格和特殊格式。有没有图书馆可以做到这一点?
【问题讨论】:
【参考方案1】:您还可以查看PDFMiner(或者对于旧版本的 Python,请参阅 PDFMiner 和 PDFMiner)。
PDFMiner 的一个特别有趣的功能是您可以控制它在提取文本部分时如何重新组合它们。您可以通过指定行、单词、字符等之间的空间来做到这一点。因此,也许通过调整它可以实现您想要的(这取决于文档的可变性)。 PDFMiner 还可以为您提供页面中文本的位置,它可以通过 Object ID 和其他东西提取数据。所以挖掘 PDFMiner 并发挥创造力!
但是您的问题确实不是一个容易解决的问题,因为在 PDF 中,文本不是连续的,而是由许多绝对位于页面中的小字符组组成。 PDF 的重点是保持布局完整。它不是面向内容,而是面向演示。
【讨论】:
PDFMiner 看起来很有趣。我可以使用其中的 XML 输出,然后对其进行解析以忽略我不想要的内容。这仍然需要大量的后处理,但目前它可能是最好的解决方案。谢谢。 @Etienne,如果 PDF 也有其他语言字符,可以使用这个吗? 它应该适用于其他语言字符。文档提及:CJK 语言和垂直书写脚本支持。最好的确定方法,测试它! PDFMiner 的 pdfminer.six Python 3 端口对我来说运行良好 从 20191010 版本开始,PDFMiner 支持仅 Python 3【参考方案2】:这是一个难以解决的问题,因为视觉上相似的 PDF 可能具有完全不同的结构,具体取决于它们的生成方式。在最坏的情况下,图书馆基本上需要像 OCR 一样工作。另一方面,PDF 可能包含足够的结构和元数据,以便轻松删除表格和图形,库可以对其进行调整以利用这些优势。
我很确定没有任何开源工具可以解决您处理各种 PDF 的问题,但我记得听说过商业软件声称可以完全按照您的要求进行操作。我相信你在谷歌搜索时会遇到它们。
【讨论】:
以上是关于使用 Python 解析 PDF - 提取格式化文本和纯文本 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Python解析PDF表格——PDFPlumber vs Camelot