1

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

4

5 回答 5

10

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

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

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

于 2015-10-09T21:17:56.860 回答
2

正如您所提到的,pdfbox提取其内容,然后使用谷歌的 diff进行比较。

于 2013-08-14T07:43:34.670 回答
0

查看这篇关于比较 PDF 文档的帖子。注意线;

PDF 是一种灵活的文件格式,您可以在其中以多种不同的方式进行操作。因此,您可以使用 Acrobat 和 Ghostscript(例如)创建文件的 2 个不同 PDF 版本。这些文件(希望)是相同的。但是文件的大小会不同,每个文件的内部结构都会非常不同

于 2013-08-14T07:44:34.750 回答
0

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

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

于 2018-03-01T07:16:48.297 回答
-1

请参阅下面给出的示例代码以进行 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 比较。

于 2018-04-06T05:23:54.420 回答