【问题标题】:iText API for PDF comparison用于 PDF 比较的 iText API
【发布时间】:2012-12-04 12:43:21
【问题描述】:

我可以使用 iText API 来比较两个 PDF 文件吗?我已经在 stackoverflow 上使用了各种方法来比较 PDF 文件,例如工具、一些实用程序,例如 imagemagick 等。 我希望比较的 PDF 是带有图表、表格和文本等的财务报告。 我们必须比较大量文件,并希望通过命令行实用程序来完成。有一个 ComparePDF 命令行工具,但它只输出两个文件是否包含差异。我们想打印一份文件差异日志。我们可以通过 iText 来实现吗?

【问题讨论】:

  • 您要比较 PDF 中包含的文本吗?
  • 我看到多个 cmets / 答案要求您澄清您的问题,但没有详细说明。由于它现在已经将近两个月了,我假设您要么找到了解决方案,要么放弃了......如果您确实找到了解决方案,将其发布在这里以供将来参考会很酷。您可以为其他寻找答案的人做点什么。就目前而言,我给这个问题一个-1。不清楚,也没有向试图帮助你的人提供反馈。
  • 我理解并道歉。我们仍然没有找到任何解决方案。我们认为 iText 可以实现它,但正如 cmets 所建议的,您需要使用多种技术组合来实现这一目标。在此之后我没有足够的时间做更多的研究。我想到的一件事是尝试修改 diffpdf 工具的代码,以便可以自动调用大量文件。该工具很好,可以满足我们的需要,但它的 UI 尚未自动化。

标签: java pdf itext


【解决方案1】:

你想比较什么? iText 可用于比较结构和语法,但是... 两个不同的 PDF 看起来与人眼相同,但内部可能具有完全不同的结构和语法。

在 iText,我们编写了使用 GhostScript 创建每个页面的图像的 JUnit 测试。这些图像在每个像素的基础上相互比较。

我们还在 JUnit 测试中使用 iText,但这些测试更多地关注结构和语法而不是内容。

【讨论】:

  • 好一个 +1 的答案。
  • 我们想在视觉上比较 PDF ......就像它在人眼中的样子......字体大小、文本位置、对齐方式等......是的,我读过这两个看起来相似之处可能在内部有显着不同。我已经检查了 DiffPDF 工具。但是我们想以自动化的方式比较大量的报告。欢迎提出任何建议。
  • 那么您想要什么级别的报告?你提到你想要更多细节 - 你想向用户报告什么?差异的数量?百分比?一个图像?有(通常是商业的)工具可用,但它们中的大多数都有一种非常具体的报告方式,可能不是您想要的......
  • @GordanWebb 您希望这些文件有多相同?它们真的会逐个像素地相同吗?是否允许整个页面的轻微变化?文本段落可以稍微重排吗?色彩空间可能不同吗?文档属性呢?
  • 我认为您总是需要工具组合。例如:从类似于我们所做的事情开始:使用 gs 渲染页面并比较图像。如果有差异,请使用 iText 解析页面并比较文本内容。要做到这一点并不容易。
【解决方案2】:

PDF比较需要使用Myers O(ND) diff算法,itext或pdfbox api没有提供pdf比较的方法,可以使用itext提取这些文件的文本和坐标,以后使用Myers O( ND) diff 算法来找出差异并突出显示变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多