我正在构建一个从 pdf 中提取文本和表格的应用程序,并从中创建 HTML。确保从 PDF 和 Word 文档中提取相同格式的数据的最佳方法是什么?例如,由于目前我对其中一个包含表格的文件有问题,该表格被吐到两页上,因此无法正确提取它,并且在 HTML 中我可以看到间距与原始文件不同。
我尝试使用 pdfplumber 提取表格,大部分情况下,但就像我提到的,两页的表格存在问题。
PDF格式基于固定布局,缺乏任何逻辑或语义结构。虽然可视化格式的文档可能看起来有一个清晰的标题、段落和表格组织,但这种结构大多没有在 PDF 的内部数据层次结构中明确表示。
与 HTML 或 Word 文档不同,PDF 文件内部没有任何内容表明存在表格。它只是按文档上的物理 x,y 位置组织的文本,“看起来”像一张表格。这使得任何库(Pdfplumber、Camelot、Tabula、Pdftables、Pdf-table-extract 等)都很难始终 100% 正确地提取表格。他们使用各种技术(例如基于规则、计算机视觉、机器学习或这些技术的组合)从 PDF 中提取表格。当 PDF 中的表格溢出到下一页时,情况会变得更加困难,因为在表格继续之前可能会出现页眉、页码或水印。
出于同样的原因,将 PDF 转换为 Word 然后尝试提取也不起作用。在将其重新创建为 Word 中的“表格”之前,转换器不会知道它是正在提取的表格。
根据我的经验,有两种非常有效的解决方案:
但这两种方法都需要您将数据发送给第三方。