首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python提取PDF文件的文本和表

用Python提取PDF文件的文本和表
EN

Stack Overflow用户
提问于 2021-09-21 01:40:16
回答 2查看 5.5K关注 0票数 1

我正在寻找一个从PDF文件中提取文本和表格的解决方案。虽然有些包适合提取文本,但它们不足以提取表。

  • 一种解决方案是使用Azure表单识别器布局模型,但是当我们有文本和表的混合时,它就失败了,特别是当表是某种文本格式并且它们将表和文本的内容混合在一起时(请参见Azure Form Recognizer代码https://github.com/Azure-Samples/cognitive-services-quickstart-code/blob/master/python/FormRecognizer/rest/python-train-extract.md)。
  • 我也尝试过pypdf2和pdfplumber;下面是pypdf2的代码: 导入PyPDF2 data_path =“os.listdir/to/pdf/files”text = [] for fp in os.listdir(data_path):pdfFileObj = open(os.path.join(data_path,fp),'rb')打印(PdfFileObj)# pdfreader=PyPDF2.PdfFileReader(pdfFileObj) # count=pdfreader.numPages # text =“for i in range(count):page = pdfreader.getPage(i) text += page.extractText() texts.extend”(文本)
  • 首先,对于一些pdf文件,pypdf2工作正常,但是它失败了,并且没有为一些pdfs (来自分析的pdf文件)保留单词之间的空格:

  • 第二,如果页面中存在表,我如何提取表?pdfplumber可以使用extract_text()和extract_table()注释同时提取文本和表。它未能为某些文档保留单词之间的空格。它也失败了,当我们有经验的双列pdf文件。
  • Tabula是另一种选择,但我从他们的网站https://github.com/tabulapdf/tabula上看到,它很适合使用表格。我的最后一个问题是,从给定的单列或双列页的pdf文件中提取内容、文本和表格的最佳做法是什么。
EN

回答 2

Stack Overflow用户

发布于 2021-09-21 02:17:09

答案取决于问题是一般性的还是特定于单一形式的。在一般情况下,您的方法是合理的,但是会有可变性。如果您有一个pdf表单,它是在每次迭代时使用不同数据创建的单个表单或报表,请考虑将表单从pdf转换为postscript,然后查看是否可以解析postscript。

有两个实用程序可以这样做: pdf2ps和pdftop各试一次。如果您知道一些postscript,这种方法可能会有好处。幸运的话,所需的字段可能是简单的文本字符串。值得一试。

票数 1
EN

Stack Overflow用户

发布于 2022-03-29 05:05:08

您可以尝试按照指南从PDF中提取文本、表格和图像。它使用PyPDFtabula-py来完成这项工作,但我不确定您是否能够按顺序提取它,因为您正在对同一个pdf文件进行“多次”提取。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69262489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档