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

使用java比较两个pdf文件(方法),java,pdfbox,apache-tika,Java,Pdfbox,Apache Tika,我需要编写一个java类来比较两个pdf文件并指出差异(文本/位置/字体的差异) 使用某种突出显示。 我最初的方法是使用pdfbox解析文件,并将提取的文本存储在一些数据结构中,以帮助我进行比较。 是否有任何java库可以提取文本,保留格式,帮助我建立索引和比较。我可以使用tika/google的diff match来实现这一点。 tika以xhtml的形式提取文本,但如何比较两个xhtml文件?如您所述,提取其内容,然后使用进行比较。如您所述,提取其内容,然后使用进行比较。在比较PDF文档时检

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

如您所述,提取其内容,然后使用进行比较。

如您所述,提取其内容,然后使用进行比较。

在比较PDF文档时检查此项。注意这条线

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

在比较PDF文档时检查此项。注意这条线

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


我不得不比较我的项目中大量的pdf文件。我的要求是逐像素比较pdf文件。在谷歌搜索了很多次之后,由于找不到任何好东西,我最终为此创建了自己的pdf实用程序

请查看此博客了解更多详细信息&jar下载


我不得不比较项目中大量的pdf文件。我的要求是逐像素比较pdf文件。在谷歌搜索了很多次之后,由于找不到任何好东西,我最终为此创建了自己的pdf实用程序

请查看此博客了解更多详细信息&jar下载


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


首先让我们使用将PDF转换为HTML,然后使用生成HTML中的比较报告。如果你想要一个PDF格式,那么把HTML报告转换成PDF格式。但请记住,由于PDF的复杂性,PDF到HTML的转换不是100%准确。您还可以尝试另一种方法,将PDF转换为图像,逐像素比较并生成PDF报告。你可以试试图书馆。在我看来,这很有希望。如果有人已经尝试过,请告诉我。

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


首先让我们使用将PDF转换为HTML,然后使用生成HTML中的比较报告。如果你想要一个PDF格式,那么把HTML报告转换成PDF格式。但请记住,由于PDF的复杂性,PDF到HTML的转换不是100%准确。您还可以尝试另一种方法,将PDF转换为图像,逐像素比较并生成PDF报告。你可以试试图书馆。在我看来,这很有希望。如果有人已经尝试过,请告诉我。

请参考以下给定的示例代码以进行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提供了用于pdf比较的免费java api

请参考以下给定的示例代码以进行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提供了用于pdf比较的免费java api

是的,但是谷歌的diff不能比较结构化/格式化text@Alvin我对此表示怀疑。你比较了吗?没有,但在谷歌页面上,它只比较纯文本。@Alvin我以为你是在用pdfbox提取纯文本。这就是问题所在!pdfbox提取纯文本。我要求的东西我也保留格式。假设ApacheTika通过创建一个xhtml文件来保留格式,但是如何比较两个xhtml文件呢?或者我应该从头开始创建一些东西,比如通过保存文档并进行比较来保留格式是的,但是谷歌的diff不能比较结构化/格式化text@Alvin我对此表示怀疑。你比较了吗?没有,但在谷歌页面上,它只比较纯文本。@Alvin我以为你是在用pdfbox提取纯文本。这就是问题所在!pdfbox提取纯文本。我要求的东西我也保留格式。假设ApacheTika通过创建一个xhtml文件来保留格式,但是如何比较两个xhtml文件呢?或者我应该从头开始创建一些东西,比如通过保存文档并比较它们来保留格式是的,我检查过了,但这真的很有帮助……我需要一种方法,以便我可以开发一些java程序……据我记忆所及,没有直接的开源文档比较器,我检查过了,但这真的很有帮助……我需要一个方法,这样我就可以开发一些java程序…据我记忆所及,没有直接的开源文档比较器,还有一个选项需要评估,还有一个选项需要评估。很有趣。。让我试试这个。很有趣。。让我试试这个。请注意,如果你想推广或推荐你自己的产品/博客,有一些是可以这样做的。跟随他们会帮助你避免给人留下你在发垃圾邮件的印象。请你明确说明你的隶属关系好吗?谢谢(如果你不是真正的附属机构,这可能也值得一提。)请注意,如果你想推广或推荐你自己的产品/博客,有一些方法可以这样做。跟随他们会帮助你避免给人留下你在发垃圾邮件的印象。请你明确说明你的隶属关系好吗?谢谢(如果你不是真正的附属机构,也值得一提。)
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");