【问题标题】:Get coordinates of the given text in pdf using python使用python获取pdf中给定文本的坐标
【发布时间】:2021-02-26 06:34:27
【问题描述】:

我正在做一个需要用 python 解析 PDF 的项目。我已经在 StackOverflow 中找到了很多关于这个的答案,但没有一个完全适合我的需要。我想通过使用 python 脚本获取 pdf 中文本的坐标。如果我提供 pdf 和“some_sample_text”,脚本应在 pdf 内搜索并提供“some_sample_text”的 x、y 坐标。我知道 Apache pdfbox 做得很好。我需要 Apache pdfbox 或 python 库之类的东西来完成这项任务。

【问题讨论】:

    标签: python parsing pdf


    【解决方案1】:

    (免责声明:我是pText 的作者,此答案中使用的库。)

    我们将首先加载Document

        with open("input.pdf", "rb") as pdf_file_handle:
            l = RegularExpressionTextExtraction("[sS]orbitol")
            doc = PDF.loads(pdf_file_handle, [l])
    

    语法非常简单。 PDF.loads 尝试读取输入流,并将其作为 PDF 处理。您可以选择指定EventListener 对象的数组。每当呈现文本、图像、页面时,EventListener 都会在解析期间得到通知。

    在这个例子中,我们传递了一个RegularExpressionTextExtractionEventListener 的这个实现监控所有传入的文本渲染命令,并尝试将它们与正则表达式进行匹配。

    最后,一旦Document 被加载,我们就可以提取所有匹配项。在本例中,我将它们输出为 json 数组。

            # export matches
            with open("output.json", "w") as json_file_handle:
                obj = [
                    {
                        "text": x.text,
                        "x0": int(x.get_baseline().x),
                        "y0": int(x.get_baseline().y),
                        "width": int(x.get_baseline().width),
                        "height": int(x.get_baseline().height),
                    }
                    for x in l.get_matched_chunk_of_text_render_events_per_page(0)
                ]
                json_file_handle.write(json.dumps(obj, indent=4))
    

    我还举了一个例子,在 PDF 中标记匹配的字母。

    您可以在GitHub 或使用PyPi 获取pText 还有很多 examples,请查看它们以了解有关处理文本的更多信息。

    【讨论】:

      【解决方案2】:

      这个包说它可以做到。我不知道它已经过时了。

      https://euske.github.io/pdfminer/

      【讨论】:

      • 请不要提供仅包含链接的答案。至少从他们的文档中复制/粘贴一个相关示例。
      猜你喜欢
      • 2011-09-05
      • 2022-10-15
      • 1970-01-01
      • 2010-10-02
      • 2011-04-26
      • 1970-01-01
      • 2011-06-22
      • 2011-11-16
      • 1970-01-01
      相关资源
      最近更新 更多