python - 将边界框中的pdf文本直接提取到python中

标签 python pdf text-extraction pypdf pdfminer

我正在尝试在给定的边界矩形内提取 pdf 的文本。据我所知,有一些用于 pdf 抓取的工具,例如 pdfminer、pypdf 和 pdftotext。我已经尝试了所有 3 个方法,到目前为止,我只获得了 pdftotext 的代码,用于从给定的边界框中提取文本。该代码看起来像这样:

s = "pdftotext -x %d -y %d -w %d -h %d"
s = s%(<various inputs into my function>)
cmd = [s, pdf_path,
           text_out]
subprocess.call(cmd)

但是,这会输出/写入一个文本文件。我想立即使用该文本,这意味着我不想打开一个文本文件来检索该边界框中的任何单词,因为我将为 10,000 多个文档执行此操作,并打开那么多文件可能是一种痛苦。我基本上是从 python 脚本运行命令行提示符,所以我认为实际上没有办法解决这个问题,但我不确定。由于 pdfminer 和 pypdf 是实际的 python 包,我可以获取它们的文本,但它们似乎没有任何方法在给定的像素限制内提取文本。

作为进一步说明 - 我希望专门在 python 中执行此操作,因为我有大量针对同一个总体项目的其他代码。

最佳答案

PyMuPDF/Fitz 包适用于此。他们在以下位置提供脚本和文档: https://github.com/pymupdf/PyMuPDF-Utilities/tree/master/textbox-extraction

他们的脚本通过查找边界词来工作,您可以通过简单地执行 rect = fitz.Rect(x0, y0, x1, y1) 而不是他们的 rect = ~their stuff~ 将其替换为矩形。 pno 也是您要从中提取的页码(如果不清楚)。

关于python - 将边界框中的pdf文本直接提取到python中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55583510/

相关文章:

python - 如何修复 pylint 警告 "Abstract class not referenced"?

ios - 通过 UIWebView 下载 PDF

iphone - 将pdf文件转换为文本文件

用于将 PDF 转换为文本的 Python 模块

python - 如何将嵌套列表中的 float 四舍五入到小数点后两位?

python - 导入错误 : cannot import name 'network' from 'tensorflow.python.keras.engine'

python - 在 Ubuntu 14.04 上设置 caffe 但在运行 classify.py 时遇到错误

python - 是否有 python 代码来解析 geoPDF 文件以获取投影和图像数据? geoPDF2KML 工具?

python - 我怎样才能在 python 中阅读 pdf?

java - 从大文件中提取文本