【问题标题】:how to read table with cells in pdf file using java? [duplicate]如何使用java读取pdf文件中包含单元格的表格? [复制]
【发布时间】:2015-06-18 19:44:15
【问题描述】:

我非常想尝试读取带有行的表格,pdf文件的单元格以系统顺序获取记录。 我已经做了很多谷歌,但我找不到最好的方法。

所以我想问一个关于它的问题-

Q 1- 我们可以从 pdf 文件中读取数据吗?
Q 2- 我们可以从 pdf 表格的任何单元格中读取数据吗?

我正在使用 java 的 itext 来执行此操作。

请给我任何例子来做到这一点。 谢谢

【问题讨论】:

  • 见过this?
  • 在提出问题之前,您应该自己花一些时间。如果没有,人们很可能只会对您的问题投反对票。出现“这是我的任务,请为我完成所有工作”的问题不会在这里出现。

标签: java pdf itext


【解决方案1】:

这两个问题的答案都是:视情况而定。

  • 假设您有一张 ZUGFeRD 发票。在这种情况下,发票是 PDF/A-3 文档,其中包含 CII XML 格式的嵌入文件。提取此 XML 并阅读它以获取有关发票的所有必要信息非常容易。包含用于创建 PDF 的数据源或 PDF 以外的其他形式的数据的嵌入或附加文件的概念是一种用于满足您的需求的技术。
  • 您可以从 PDF 中提取文本。这在诸如PDF text extraction using iText 之类的问题中得到了解释,但您只能获得没有格式化的原始文本。在许多情况下,PDF 包含一堆文本和放置在画布上的绝对位置的行。页面上的单词不知道它是句子的一部分还是单元格的一部分等。除非:
  • 如果 PDF 是带标签的 PDF,则 PDF 还包含有关内容结构的信息。例如:内容将包含指示结构的标签,例如表格、表格标题、表格行、表格单元格。如果您谈论的是带标签的 PDF,那么可以以结构化的方式提取文本。

过去,我们做过项目,我们收到来自 VISA、MasterCard、AmEx 的信用卡对帐单……我们必须提取所有费用并将它们作为记录存储在数据库中。我们能够做到这一点,因为报表的格式是可预测的:所有 VISA 报表的创建方式都是一样的,因此我们能够找到允许我们提取数据的模式。

不用说,我们不共享我们用来执行此操作的代码。付钱给我们做那个项目的公司不会高兴的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 2017-04-19
    • 2011-05-24
    相关资源
    最近更新 更多