【问题标题】:Web based application for comparasion of 2 pdf documents用于比较 2 个 pdf 文档的基于 Web 的应用程序
【发布时间】:2012-04-18 04:18:31
【问题描述】:

我们需要集成到现有的 java web 应用程序中,这是一个允许用户比较 2 个 pdf 文档并查看差异的新功能。所以,我开始搜索一些已经存在的库或工具(开源或商业),可以帮助我解决这个请求。 有谁知道是否存在这种应用程序?那需要 2 个 pdf,比较它们并显示差异?

提前致谢, 玛达琳娜

【问题讨论】:

  • 确实存在这样的工具——问题是你所说的差异究竟是什么意思。你想知道文字是否不同吗?如果文本的格式不同?如果元素(文本或图像)位于不同的位置?如果图像中的像素不同?每种情况都有不同的方法。

标签: java pdf web-applications document


【解决方案1】:

您好,我做了一个基于 PDFBOX 的 PDF 比较项目,您可以从 link 下载源代码

下面提到的示例用法它执行三个级别的比较,您可以通过将目标和源文件名保存在列表中然后调用其比较功能来简单地添加一个循环。

        pdfComparison cmp=new pdfComparison();
      //Text Comparision page by page         if(cmp.textComparision("ReferencePDF\\PDF2_302.pdf","C:\\\PDF2_305.pdf"))
              {
        System.out.print("\n********PDF text is identical******* ");

              }
              else 
              {
                  System.out.print("\n********PDF text is  not identical******* ");

              }

//Extract all images in PDF and compare   
    cmp.extract_ALL_Images_ThenCompare("PDF2_302.pdf","PDF2_302.pdf");

//Convert Both PDF pages into JPG and perform image comparison 
        cmp.PDF_Convert_To_Jpeg_Comparision("PDF2_302.pdf","PDF2_302.pdf");

您将在项目中的差异文件夹中看到所有图像差异。如果有任何问题,请给我留言

【讨论】:

  • 您的项目使用当前的 PDFBox 版本 1.8.9。已知版本 2 之前的 PDFBox 版本在将 PDF 页面呈现为已在当前 2.0.0-SNAPSHOT 中修复的图像时存在许多缺陷。因此,基于 PDFBox 1.8.9 的 PDF 比较可能作为第一次冒烟测试或在 PDFBox 1.8.9 可以正确呈现的 PDF 的非常受控环境中工作,但不适用于通用 PDF 的生产代码。
  • 我没有使用 PDF 框进行比较,我只是通过 PDF 框提取内容。请先下载代码并自行检查。
  • 它在我的框架中运行良好事实上我比较了 300 页 PDF
  • 我没有使用 PDF 框进行比较 - 在comparePDF.convertPDFToJPG 你做page.convertToImage();此方法调用代码时“将 PDF 页面呈现为图像时存在许多缺陷”。 请先下载代码并自行检查 - 我这样做了,因此写下了我的初步评论。
  • 确实有很多情况下pdfbox 1.x 页面渲染工作。将它用于通用 pdf 只是有风险。
【解决方案2】:

我的回答可能不令人满意,但这个项目来自 apache -> http://pdfbox.apache.org/

可以帮助你。您可以将 pdf 转换为文本文件并进行比较。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多