【问题标题】:PyQuery and PDFQuery text extraction from next sibling in XML or PDFPyQuery 和 PDFQuery 从 XML 或 PDF 中的下一个兄弟中提取文本
【发布时间】:2020-04-21 14:22:51
【问题描述】:

我正在尝试使用 PDFQuery 包从 PDF 中提取信息。信息每次都不在同一个位置,所以我需要一个查询标签。首先,我写了函数:

def clean_text_data(text):
      return text.split(':')[1]

然后我写了一个函数来提取文本:

Date = clean_text_data(pdf.pq('LTTextLineHorizontal:contains("Date")').text())

然而,问题是(出于某种原因)几乎所有数据都在下一个“LTTextHorizo​​ntal”上。

XML 如下所示:

<LTTextLineHorizontal bbox="[58.501, 377.094, 78.501, 385.094]" height="8.0" width="20.0" word_margin="0.1" x0="58.501" x1="78.501" y0="377.094" y1="385.094"><LTTextBoxHorizontal bbox="[58.501, 377.094, 78.501, 385.094]" height="8.0" index="39" width="20.0" x0="58.501" x1="78.501" y0="377.094" y1="385.094">Date: </LTTextBoxHorizontal></LTTextLineHorizontal>
<LTTextLineHorizontal bbox="[107.249, 377.334, 147.281, 385.334]" height="8.0" width="40.032" word_margin="0.1" x0="107.249" x1="147.281" y0="377.334" y1="385.334"><LTTextBoxHorizontal bbox="[107.249, 377.334, 147.281, 385.334]" height="8.0" index="40" width="40.032" x0="107.249" x1="147.281" y0="377.334" y1="385.334">02/26/2020 </LTTextBoxHorizontal></LTTextLineHorizontal>

这里的日期是 2020 年 2 月 26 日,但它在紧随其后的框中。如何创建函数来提取以下框?

【问题讨论】:

    标签: python xml pdf pdfminer pyquery


    【解决方案1】:

    你这样做:

    label = pdf.pq('LTTextLineHorizontal:contains("Date")')
        left_corner = float(label.attr('x0'))
        bottom_corner = float(label.attr('y0'))
    

    在第一部分中,我找到包含“日期”的 PDF 区域并提取其边界框的源坐标,因此 x0:y0 对应于写入“日期”的位置的左下角

        name = pdf.pq('LTTextLineHorizontal:in_bbox("%s, %s, %s, %s")' % (
            left_corner, bottom_corner - 12, left_corner + 350, bottom_corner)).text()
    

    之后,我偏移这些坐标以创建一个新的 bbox,其中包含我正在寻找的信息,我得到它是 .text()

    坐标以点为单位偏移,您可以使用 Acrobat 的尺子进行测量。

    来源在这里:https://pypi.org/project/pdfquery/#quick-start

    快速入门指南有一个非常好的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多