文檔對比功能用于比較不同文檔,主要用于核對 Word 文檔的不同版本溃卡,以確定對文檔所做的更改犹赖。通過使用文檔對比功能峻村,用戶可以輕松找出文檔中增加、刪除和修改的內(nèi)容膊夹,以及格式的調(diào)整放刨。本文將介紹如何使用 Spire.Doc for Java 通過 Java 程序比較兩個 Word 文檔。
下圖展示了用于比較的兩個 Word 文檔眉菱。
1.比較兩個 Word 文檔并保存比較結(jié)果
使用 Document.compare() 方法對比兩個文檔后愿吹,可以將比較結(jié)果保存到新的 Word 文檔中歹袁,從而方便查看對原始文檔所做的所有改動宇攻。
以下是詳細(xì)操作步驟:
創(chuàng)建兩個 Document 類的對象嘉涌。
使用 Document.loadFromFile() 方法載入兩個 Word 文檔。
使用 Document.compare() 方法比較兩個文檔。
使用 Document.saveToFile() 方法將結(jié)果保存到新的文檔中。
代碼如下:
import com.spire.doc.Document;
public class compareDocuments {
public static void main(String[] args) {
//創(chuàng)建兩個Document類的對象
Document original = new Document();
Document revised = new Document();
//載入原文檔和修改后的文檔
original.loadFromFile("第二版.docx");
revised.loadFromFile("第三版.docx");
//比較兩個文檔
original.compare(revised, "李陽");
//保存比較結(jié)果
original.saveToFile("比較結(jié)果.docx");
original.dispose();
revised.dispose();
}
}
2.比較兩個 Word 文檔并返回插入和刪除的內(nèi)容
如果只需要獲取插入和刪除的內(nèi)容律秃,可以在對比文檔后使用 DifferRevisions.getInsertRevisions() 和 DifferRevisions.getDeleteRevisions() 方法獲取插入改動和刪除改動。
以下是詳細(xì)操作步驟:
創(chuàng)建兩個 Document 類的對象。
使用 Document.loadFromFile() 方法載入兩個 Word 文檔辞槐。
使用 Document.compare() 方法比較兩個文檔。
使用 DifferRevisions 構(gòu)造函數(shù)檢索修訂版本。
使用 DifferRevisions.getInsertRevisions() 方法獲取插入改動列表险掀。
使用 DifferRevisions.getDeleteRevisions() 方法獲取刪除列表冈绊。
循環(huán)遍歷兩個列表中的項目,以獲取特定的插入和刪除內(nèi)容潦牛。
代碼如下:
import com.spire.doc.DifferRevisions;
import com.spire.doc.Document;
import com.spire.doc.fields.TextRange;
import com.spire.ms.System.Collections.Generic.List;
public class getInsertionDeletion {
public static void main(String[] args) {
//闖將兩個Document類的對象
Document doc1 = new Document();
Document doc2 = new Document();
//載入原文檔
doc1.loadFromFile("第二版.docx");
//載入修改后的文檔
doc2.loadFromFile("第三版.docx");
//比較兩個Word文檔
doc1.compare(doc2, "李陽");
//獲取文檔中的改動
DifferRevisions differRevisions = new DifferRevisions(doc1);
//獲取插入改動列表
List insertRevisionsList = differRevisions.getInsertRevisions();
//獲取刪除改動列表
List deleteRevisionsList = differRevisions.getDeleteRevisions();
int m = 0;
int n = 0;
//循環(huán)遍歷插入改動列表以獲取所有插入內(nèi)容
for (int i = 0; i < insertRevisionsList.size(); i++)
{
if (insertRevisionsList.get(i) instanceof TextRange)
{
m += 1;
//獲取指定插入改動蒿叠,并獲取插入的具體內(nèi)容
TextRange textRange = (TextRange)insertRevisionsList.get(i) ;
System.out.println("插入 #" + m + ":" + textRange.getText());
}
}
System.out.println("============================================");
//循環(huán)遍歷刪除改動列表以獲取所有插入內(nèi)容
for (int i = 0; i < deleteRevisionsList.size() ; i++)
{
if (deleteRevisionsList.get(i) instanceof TextRange)
{
n += 1;
//獲取指定刪除改動痊银,并獲取刪除的具體內(nèi)容
TextRange textRange = (TextRange) deleteRevisionsList.get(i) ;
System.out.println("刪除 #" + n + ":" + textRange.getText());
}
}
doc1.dispose();
doc2.dispose();
}
}
希望能幫你解決問題,詳細(xì)信息可以前往官網(wǎng)查看解決方案