我需要编写一个Java类,可以比较两个PDF文件并指出它们之间的差异(包括文字、位置和字体),并使用某种高亮方式显示出来。
我的初始方法是使用pdfbox解析文件,并将提取的文本存储在某种数据结构中,以便于比较。
有没有什么Java库可以提取文本、保留格式,并帮助我进行索引和比较?我可以使用tika或Google的diff-match吗?
tika以xhtml的形式提取文本,但我该如何比较两个xhtml文件?
在我的项目中,我不得不比较大量的PDF文件。我的要求是按像素点对PDF文件进行比较。经过大量的搜索,由于找不到好的工具,我最终创建了自己的PDF实用程序来实现这个目的。
更多详细信息和JAR下载,请查看此博客。
http://www.testautomationguru.com/introducing-pdfutil-to-compare-pdf-files-extract-resources/
正如你所提到的,使用pdfbox提取内容,然后使用google的diff进行比较。
请查看文章,了解如何比较PDF文档。注意以下内容:
PDF是一种灵活的文件格式,您可以通过多种不同的方式完成任务。例如,您可以使用Acrobat和Ghostscript创建两个不同版本的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 比较。
我不知道您是否已经解决了您的问题。以下是我的解决方案。
首先,我们可以使用Pdf2dom将PDF转换为HTML,然后使用daisydiff生成HTML比较报告。如果您需要一个PDF文件,则可以将该HTML报告转换为PDF。但请记住,由于PDF的复杂性,PDF到HTML转换并不是100%准确的。您还可以尝试另一种方法,即将PDF转换为图像,逐像素进行比较并生成PDF报告。您可以尝试使用PDFcompare库。在我看来,它很有前途。如果有人已经尝试过,请让我知道。