我需要编写一个java类来比较两个pdf文件并使用某种突出显示来指出差异(文本/位置/字体的差异)。我最初的方法是使用 pdfbox 使用 pdfbox 解析文件,并将提取的文本存储在一些有助于我比较的数据结构中。是否有任何 java 库可以提取文本、保留格式、帮助我进行索引和比较。我可以使用 tika/google 的 diff-match 吗?tika 以 xhtml 的形式提取文本,但我如何比较两个 xhtml 文件?
5 回答
我不得不在我的项目中比较大量的 pdf 文件。我的要求是逐个像素地比较 pdf 文件。经过大量的谷歌搜索,因为我找不到任何好的东西,我最终为此创建了自己的 pdf 实用程序。
请查看此博客以获取更多详细信息和 jar 下载。
http://www.testautomationguru.com/introducing-pdfutil-to-compare-pdf-files-extract-resources/
查看这篇关于比较 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 比较。