使用java比较两个pdf文件(方法)

我需要编写一个比较两个pdf文件的java类,并使用某种突出显示指出差异(文本/位置/字体的差异)。 我最初的方法是使用pdfbox使用pdfbox解析文件,并使用一些数据结构存储提取的文本,这将有助于我进行比较。 是否有任何java库可以提取文本,保留格式,帮助我索引和比较。我可以使用tika / google的差异匹配。 tika以xhtml的forms提取文本,但我如何比较两个xhtml文件?

我不得不在我的项目中比较大量的pdf文件。 我的要求是逐个像素地比较pdf文件。 经过大量的谷歌搜索,因为我找不到任何好的东西,我最终为此目的创建了自己的pdf实用程序。

请查看此博客以获取更多详细信息和jar下载。

http://www.testautomationguru.com/introducing-pdfutil-to-compare-pdf-files-extract-resources/

如你所述, pdfbox提取其内容然后使用谷歌的差异进行比较。

在比较PDF文档时查看这篇文章 。 记下这条线;

PDF是一种灵活的文件格式,您可以通过多种方式执行操作。 因此,您可以使用Acrobat和Ghostscript(作为示例)创建文件的2个不同PDF版本。 这些文件(希望)是相同的。 但文件大小不同,每个文件的内部结构会有很大不同

我不知道你是否能够解决你的问题。 这是我解决这个问题的方法。

首先让我们使用Pdf2dom将PDF转换为HTML,然后使用daisydiff在HTML中生成比较报告。 如果需要PDF,则将该HTML报告转换为PDF。 但请记住,由于PDF的复杂性,PDF到HTML的转换不是100%准确。 您还可以尝试另一种将PDF转换为图像并将像素与像素进行比较并生成PDF报告的方法。 您可以尝试PDFcompare库。 它看起来很有希望。 如果有人已经尝试过,请告诉我。

请参阅以下给出的示例代码以进行pdf比较。

ZPDFCompare obj = new ZPDFCompare(); obj.pdfcompare("C:\\Users\\Desktop\\expectedFile.pdf", "C:\\Users\\Desktop\\actualFile.pdf", "C:\\Users\\Desktop\\expectedFile_Diff.pdf","C:\\Users\\tarun.kumar\\Desktop\\actualFile_Diff.pdf"); 

zeonpad提供免费java api进行pdf比较。