利用Java對(duì)比兩個(gè)PDF文件之間的差異
不論是在團(tuán)隊(duì)寫(xiě)作還是在個(gè)人工作中,PDF 文檔往往會(huì)經(jīng)過(guò)多次修訂和更新。掌握 PDF 文檔內(nèi)容的變化對(duì)于管理文檔有極大的幫助。通過(guò)對(duì)比 PDF 文檔,用戶(hù)可以快速找出文檔增加、刪除和修改的內(nèi)容,更好地了解文檔的演變過(guò)程,輕松地管理文檔。本文將介紹如何在 Java 程序中通過(guò)代碼快速比較兩個(gè) PDF 文檔并找出文檔之間的內(nèi)容差異。
本文所使用的方法需要用到 Spire.PDF for Java庫(kù),可點(diǎn)擊下載后再手動(dòng)將 Spire.Pdf.jar 引入程序中。
使用 Java 對(duì)比整個(gè) PDF 文檔
對(duì)比文檔之前需要先將兩個(gè)文檔作為參數(shù)傳遞到 PdfComparer 類(lèi)的構(gòu)造函數(shù)創(chuàng)建對(duì)象,然后再使用 PdfComparer.compare(String fileName) 方法對(duì)比這兩個(gè) PDF 文檔并將對(duì)比結(jié)果保存到第三個(gè) PDF 文檔。 對(duì)比結(jié)果文檔將分兩欄展示原文檔,增加部分顯示在左側(cè),刪除部位顯示在右側(cè)。 步驟和代碼如下:
- 創(chuàng)建兩個(gè) PdfDocument 類(lèi)的對(duì)象。
- 使用 PdfDocument.loadFromFile() 方法加載兩個(gè) PDF 文檔。
- 創(chuàng)建 PdfComparer 類(lèi)的對(duì)象。
- 使用 PdfComparer.compare() 方法比較兩個(gè)文檔,并將結(jié)果保存為新的 PDF 文檔。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;
public class ComparePDF {
public static void main(String[] args) {
// 創(chuàng)建PdfDocument對(duì)象并加載第一個(gè)PDF文檔
PdfDocument pdf1 = new PdfDocument();
pdf1.loadFromFile("文件1.pdf");
// 創(chuàng)建另一個(gè)PdfDocument對(duì)象并加載另一個(gè)PDF文檔
PdfDocument pdf2 = new PdfDocument();
pdf2.loadFromFile("文件2.pdf");
// 創(chuàng)建PdfComparer對(duì)象
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
// 比較兩個(gè)PDF文檔并將比較結(jié)果保存到新文檔中
comparer.compare("比較1.pdf");
}
}比較結(jié)果:

使用 Java 對(duì)比 PDF 文檔的指定頁(yè)面
初始化 PdfComparer 之后,還可以使用 PdfComparer.getOptions().setPageRanges() 方法限制用于對(duì)比的 PDF 頁(yè)面范圍。步驟和代碼如下:
- 創(chuàng)建兩個(gè) PdfDocument 類(lèi)的對(duì)象。
- 使用 PdfDocument.loadFromFile() 方法加載兩個(gè) PDF 文檔。
- 創(chuàng)建 PdfComparer 類(lèi)的對(duì)象。
- 使用 PdfComparer.getOptions().setPageRanges() 方法設(shè)置要對(duì)比的頁(yè)面范圍。
- 使用 PdfComparer.compare() 方法比較兩個(gè)文檔,并將結(jié)果保存為新的 PDF 文檔。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;
public class ComparePDFPageRange {
public static void main(String[] args) {
// 創(chuàng)建PdfDocument對(duì)象并加載第一個(gè)PDF文檔
PdfDocument pdf1 = new PdfDocument();
pdf1.loadFromFile("文件1.pdf");
// 創(chuàng)建另一個(gè)PdfDocument對(duì)象并加載另一個(gè)PDF文檔
PdfDocument pdf2 = new PdfDocument();
pdf2.loadFromFile("文件2.pdf");
// 創(chuàng)建PdfComparer對(duì)象
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
// 設(shè)置要比較的頁(yè)面范圍
comparer.getOptions().setPageRanges(1, 1, 1, 1);
// 比較兩個(gè)PDF文檔并將比較結(jié)果保存到新文檔中
comparer.compare("比較2.pdf");
}
}比較結(jié)果

以上示例可以看出用 Spire.PDF for Java 對(duì)比 PDF 文檔的操作十分簡(jiǎn)單,僅需幾行代碼就能快速找出文檔之間的差異。要了解該Java庫(kù)支持的其他功能,可前往 Spire.PDF for Java 教程查看。
到此這篇關(guān)于利用Java對(duì)比兩個(gè)PDF文件之間的差異的文章就介紹到這了,更多相關(guān)Java對(duì)比PDF文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis-Plus通過(guò)SQL注入器實(shí)現(xiàn)批量插入的實(shí)踐
本文主要介紹了Mybatis-Plus通過(guò)SQL注入器實(shí)現(xiàn)批量插入的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
電腦上安裝多個(gè)JDK版本時(shí)該如何自由切換(詳細(xì)圖文)
我們?cè)趯W(xué)習(xí)的過(guò)程中經(jīng)常用到不同的jdk版本,那么如何在一臺(tái)電腦上同時(shí)安裝多個(gè)jdk版本并進(jìn)行切換呢,這篇文章主要給大家介紹了關(guān)于電腦上安裝多個(gè)JDK版本時(shí)該如何自由切換的相關(guān)資料,需要的朋友可以參考下2023-10-10
使用Springboot注解形式進(jìn)行模糊查詢(xún)
這篇文章主要介紹了使用Springboot注解形式進(jìn)行模糊查詢(xún)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Sentinel熱門(mén)詞匯限流的實(shí)現(xiàn)詳解
這篇文章主要介紹了使用Sentinel對(duì)熱門(mén)詞匯進(jìn)行限流的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
springboot整合 xxl-job的項(xiàng)目實(shí)踐
XL-JOB是一個(gè)分布式任務(wù)調(diào)度平臺(tái),用于解決分布式系統(tǒng)中的任務(wù)調(diào)度和管理問(wèn)題,它包括調(diào)度中心、執(zhí)行器和Web管理控制臺(tái),本文就來(lái)介紹一下springboot整合 xxl-job的項(xiàng)目實(shí)踐,感興趣的可以了解一下2024-09-09
springboot整合mongodb并實(shí)現(xiàn)crud步驟詳解
這篇文章主要介紹了springboot整合mongodb并實(shí)現(xiàn)crud,本文分步驟通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08
對(duì)spring task和線(xiàn)程池的深入研究
這篇文章主要介紹了對(duì)spring task和線(xiàn)程池的深入研究,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

