如何使用Java提取pdf表格?

问题描述 投票:0回答:2

我正在尝试使用 Java 以结构化方式将表数据提取为表。 过去两年我一直在使用 pdfbox 和 tabula。 但问题是 pdfbox 将 pdf 中的所有数据作为排序或未排序的文本返回,并且 tabula 有时会检测到具有完美边框的表格,并且无法识别没有边框的表格。

请帮助我找到一个解决方案,使用 Java 以结构化格式从 pdf 中提取表格,而不是使用 pdfbox 和 tabula api

java pdf pdfbox pdftotext camelot-php-tools
2个回答
0
投票

如果你想使用Java从PDF中提取表格,那么我认为这种方法非常适合你。使用 Spire.PDF for Java 控件来完成此操作。Spire.PDF for Java 提供了 PdfTableExtractor.extractTable(int pageIndex) 方法来从所需的 PDF 页面中检测并提取表格。 您可以参考以下Java代码:

       //Loop through the pages in the PDF
       for (int pageIndex = 0; pageIndex < pdf.getPages().getCount(); pageIndex++) {
       
       //Extract tables from the current page into a PdfTable array
       PdfTable[] tableLists = extractor.extractTable(pageIndex);

这里是完整的文章教程:使用Java从PDF文档中提取表格数据。我希望这个答案对您非常有帮助。


0
投票

我最近编写了一个库,可以成功从多个 PDF 页面中提取表格。

它仍然是一个实验版本,但它可能适用于您的 PDF 表格。

(如果没有,您可以通过以下方式与我联系:[电子邮件受保护],我很乐意看看我们是否可以使图书馆与新的 Pdf 一起使用)

您可以在以下位置下载该库:

下载库

它是lgpl许可的,所以它是相当宽松的。

类的设计目的是支持扩展和派生,以防您有涉及扩展功能的特殊需要。

© www.soinside.com 2019 - 2024. All rights reserved.