【问题标题】:How to read values from a PDF file in java using PDFTable or PDFTableExtractor class?如何使用 PDFPTable 或 PDFPTable Extractor 类从 Java 中的 PDF 文件中读取值?
【发布时间】:2018-01-23 12:49:39
【问题描述】:

我尝试使用 PDFTextStripperByAreaPDPageContentStream 类从我的 pdf 文件中提取数值。 他们工作得很好!

但我的要求是使用 PDFTablePDFTableExtractor 类来阅读 pdf 内容。你能告诉我访问上述类需要使用的 maven 依赖项jar 文件 是什么吗? 还要提到从特定位置获取值所需的方法

我还有一个疑问。 我们可以从PDF文件中提取表格格式的数据吗?我的意思是带有行和带有表格行的列的数据。如果一个页面包含一些文本和一个表格,我们可以只读取表格标题和行吗? 我已将我的页面上传到 GitHub。点击here!从该图像中,我只需要毛保费、GST 和应付总额的值。请告诉我是否可能

【问题讨论】:

  • 我使用 Apache PDFBox(一个免费库)进行 PDF 操作。想知道它对你有多重要。
  • Apache PDFBox 包含 PDPageContentStream 并且 我已经尝试过了。效果很好!。但是在这里,我需要使用 PDFTableExtractor 来实现我的要求。
  • 这两个类PDFTablePDFTableExtractor是否与pdfbox相关?
  • 没有。它们不属于 PDFBox
  • 您在评论中写道,您被指示尝试PDFTableExtractor。在这种情况下,我会说你不应该为学习 maven 和选择 jdk 而烦恼,而是专注于让它以某种方式运行,看看它是否解决了请求。所以最简单的方法是在你的 IDE 中创建一个非 maven 项目并附加 jar 文件。顺便说一句,有一个提取表的工具:tabula java。不知道有没有API。

标签: java pdf maven-2 maven-plugin pdfbox


【解决方案1】:

首先,不要使用包中的类com.lowagie 该代码是旧的、过时的并且不再受支持。此外,该代码属于iText 的早期版本。

随后对所有代码的知识产权进行了彻底调查(因为 iText 有很多贡献者)。当您使用旧代码时,您可能(在不知不觉中)正在使用您没有版权的代码。

其次,如果您只是想解决从PDF文档中提取数字和表格的问题,请查看pdf2Data。这是一个iText 插件,让事情变得更容易。

它为您提供了一个漂亮的 UI,您可以在其中构建用于数据提取的模板。然后,您可以调用单个方法将现有 (XML) 模板与输入 PDF 文档进行匹配,您将获得一个包含所有匹配信息的数据结构。

http://pdf2data.online/

【讨论】:

    【解决方案2】:

    PDFTable

    我找到了两个 PDFTable 类:

    com.lowagie.text.pdf.PdfPTable
    
    com.itextpdf.text.pdf.PdfPTable
    

    这两个类的文档(这可能有助于您学习所需的方法):

    https://www.coderanch.com/how-to/javadoc/itext-2.1.7/com/lowagie/text/pdf/PdfPTable.html

    http://itextsupport.com/apidocs/itext5/5.5.9/com/itextpdf/text/pdf/PdfPTable.html

    如果你想使用这些类,你可以将依赖项复制到你的 pom.file 中: https://mvnrepository.com/artifact/com.itextpdf/itextpdf
    https://mvnrepository.com/artifact/com.lowagie/itext - 如此链接所述,此工件已移至 com.itextpdf

    您可以在这里找到如何使用这些类的示例:

    https://developers.itextpdf.com/examples/itext-action-second-edition/chapter-4

    https://www.programcreek.com/java-api-examples/index.php?api=com.lowagie.text.pdf.PdfPTable

    【讨论】:

    • 我认为这不是 Vengat 想要的,他要求提取表格,但您的课程是关于在 PDF 中创建表格。
    • True @TilmanHausherr 我需要从 pdf 文件中读取值。这些值将采用表格格式。由于所需文本的位置因不同文件而不断变化,因此我无法使用普通方法,即读取整个内容并拆分所需内容通过确切位置查找文本。我的一位前辈指示我尝试使用PDFTableExtractor 类。我是 pdf 文件的新手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 2012-09-04
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多