繁体   English   中英

如何使用 python 识别 pdf 中的图形?

[英]how to recognize a graph in pdf using python?

新的 pdf 解析。

我想识别 pdf 文件中的图形,因此我可以跳过它而不提取此类文本。 我所知道的关于 pdf 的是它是从 word 生成的(未扫描)。

输入 - pdf,带有这样的图表。 output 应该是 - 真或假

pdfplumber 可以识别表格,但似乎无法识别图形。 尝试识别曲线和矩形,但结果不一致。

也许还有另一种方式?

谢谢!

选项1:

(感谢@KJ 评论)我最终使用一些批量估计来了解页面是否包含图表。

如果页面中有超过 MIN_RECTS,我假设那里有一个图表(列被预测为矩形)或者如果有超过 MIN_CURVES 比有一个图表(对我来说它是 0,但这取决于你是否有一些非 - header 或页脚中的琐碎形状)。 它不是最好的,但它大部分时间都有效。

一些代码的示例 - 之后同时使用函数和 extract_text() 会给我带来非常好的结果。

page = pdfplumber.open("file.pdf").pages[0]

def contains_graphs(page):
  return len(page.rects) > MIN_RECTS or len(page.curves) > MIN_CURVES 

def only_chars_from_page_filter(page):
  return page.filter(lambda obj: obj["object_type"] == "char")

选项 2:

按照@G5W 的评论,可以使用 pywin32 将 PDF 转换为 MS Word 文件以将 PDF 读入 Word,然后仅使用 python-docx 提取文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM