利用Java對(duì)比兩個(gè)PDF文件之間的差異
不論是在團(tuán)隊(duì)寫作還是在個(gè)人工作中,PDF 文檔往往會(huì)經(jīng)過多次修訂和更新。掌握 PDF 文檔內(nèi)容的變化對(duì)于管理文檔有極大的幫助。通過對(duì)比 PDF 文檔,用戶可以快速找出文檔增加、刪除和修改的內(nèi)容,更好地了解文檔的演變過程,輕松地管理文檔。本文將介紹如何在 Java 程序中通過代碼快速比較兩個(gè) PDF 文檔并找出文檔之間的內(nèi)容差異。
本文所使用的方法需要用到 Spire.PDF for Java庫,可點(diǎn)擊下載后再手動(dòng)將 Spire.Pdf.jar 引入程序中。
使用 Java 對(duì)比整個(gè) PDF 文檔
對(duì)比文檔之前需要先將兩個(gè)文檔作為參數(shù)傳遞到 PdfComparer 類的構(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 類的對(duì)象。
- 使用 PdfDocument.loadFromFile() 方法加載兩個(gè) PDF 文檔。
- 創(chuàng)建 PdfComparer 類的對(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 文檔的指定頁面
初始化 PdfComparer 之后,還可以使用 PdfComparer.getOptions().setPageRanges() 方法限制用于對(duì)比的 PDF 頁面范圍。步驟和代碼如下:
- 創(chuàng)建兩個(gè) PdfDocument 類的對(duì)象。
- 使用 PdfDocument.loadFromFile() 方法加載兩個(gè) PDF 文檔。
- 創(chuàng)建 PdfComparer 類的對(duì)象。
- 使用 PdfComparer.getOptions().setPageRanges() 方法設(shè)置要對(duì)比的頁面范圍。
- 使用 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è)置要比較的頁面范圍
comparer.getOptions().setPageRanges(1, 1, 1, 1);
// 比較兩個(gè)PDF文檔并將比較結(jié)果保存到新文檔中
comparer.compare("比較2.pdf");
}
}比較結(jié)果

以上示例可以看出用 Spire.PDF for Java 對(duì)比 PDF 文檔的操作十分簡單,僅需幾行代碼就能快速找出文檔之間的差異。要了解該Java庫支持的其他功能,可前往 Spire.PDF for Java 教程查看。
到此這篇關(guān)于利用Java對(duì)比兩個(gè)PDF文件之間的差異的文章就介紹到這了,更多相關(guān)Java對(duì)比PDF文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)經(jīng)典拳皇誤闖冒險(xiǎn)島游戲的示例代碼
《拳皇誤闖冒險(xiǎn)島》是拳皇和冒險(xiǎn)島素材的基于JavaSwing的動(dòng)作類游戲。本文將用Java語言實(shí)現(xiàn)這一游戲,需要的小伙伴可以參考一下2022-02-02
SpringBoot 枚舉類型的自動(dòng)轉(zhuǎn)換的實(shí)現(xiàn)
一般我們?cè)跀?shù)據(jù)庫都會(huì)定義數(shù)值型的枚舉常量,不管是序列化還是反序列化都是需要我們手動(dòng)去轉(zhuǎn)換成枚舉類型的,本文主要介紹了Spring Boot 枚舉類型的自動(dòng)轉(zhuǎn)換,感興趣的可以了解一下2022-03-03
openFeign服務(wù)之間調(diào)用保持請(qǐng)求頭信息處理方式
這篇文章主要介紹了openFeign服務(wù)之間調(diào)用保持請(qǐng)求頭信息處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
在IntelliJ IDEA中.idea文件是什么可以刪除嗎
相信有很多小伙伴,在用idea寫java代碼的時(shí)候,創(chuàng)建工程總是會(huì)出現(xiàn).idea文件,該文件也從來沒去打開使用過,那么它在我們項(xiàng)目里面,扮演什么角色,到底能不能刪除它呢?這篇文章主要介紹了在IntelliJ IDEA中.idea文件是什么可以刪除嗎,需要的朋友可以參考下2024-01-01
java中你的項(xiàng)目應(yīng)該如何正確分層
這篇文章主要介紹了java中你的項(xiàng)目應(yīng)該如何正確分層,業(yè)務(wù)分層對(duì)于代碼規(guī)范是比較重要,決定著以后的代碼是否可復(fù)用,感興趣的可以了解一下2021-04-04

