【问题标题】:How to extract data from a table in a PDF file?如何从 PDF 文件中的表格中提取数据?
【发布时间】:2019-08-08 10:04:23
【问题描述】:

我有一个包含表格的PDF文件,格式是这样的:

现在;我需要从每一行的特定列中提取数据以插入数据库。 如何仅使用 javascript 或 python 提取我想要的列?

我已经尝试过手动方式,但这还不够。

我希望将原始数据放入变量(数组或列表)中。

=========================================== 更新:

我决定用python,库的名字是tabula;我使用 pip 安装了它:

pip install tabula-py

您将 pdf 传递给库并指定表格的页面。我的问题中表格的输出看起来像这样神奇:

【问题讨论】:

    标签: javascript python pdf text


    【解决方案1】:

    我使用pdfjs-dist 提取pdf 中的项目,并应用一些规则来识别表格元素。提取出来的item不仅有文本信息,而且只有一个叫做“transform”(变换矩阵)的属性,其中包含坐标信息,也可以用来识别表格元素。

    首先要找到表的开头。在许多情况下,标题是相同的,因此您可以利用这些词来寻找开始。一行中的第一个表格元素可能共享相同的坐标,这也可以提供表格从哪里开始的线索。确定表格的开头后,由于所有表格都是固定宽度的,因此可以将项目划分为某些列。请注意,单个单元格中可能有不止一行,因此您需要将它们组合起来。

    【讨论】:

    • 请将您的答案具体化,显示代码示例等
    • 我会说代码示例对其他人来说太琐碎且毫无意义。在提取 PDF 的各个项目的信息后,它基本上是一种设置规则的蛮力方法。但我会尝试在我的答案中添加更多描述。
    【解决方案2】:

    您可以尝试 AWS Textract。它具有提取表格的功能,可以将数据作为 csv/json 格式提供给您。

    您可以查看更多相关信息here

    【讨论】:

    • 没有办法使用 python 或 javascript 库解析 pdf 吗?亚马逊 AWS T 需要信用卡
    • 实际上有可用于 python 的 textract 库。链接:textract.readthedocs.io/en/stable 不过这不是一回事。你可以试试看。如果您需要更多的准确性和功能以及它的业务用例,那么 aws 不是一个糟糕的选择。
    猜你喜欢
    • 1970-01-01
    • 2022-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2021-04-26
    • 2023-02-20
    相关资源
    最近更新 更多