在日常開發或辦公場景中,PDF 文檔對比是高頻需求(如合同版本迭代校驗、技術文檔審核、報表一致性驗證等)。市面上雖有 Adobe Acrobat 等可視化對比工具,但通過編程實現 PDF 對比可滿足自動化、定製化的業務需求。本文將介紹如何使用免費庫 Free Spire.PDF for .NET 對比兩個 PDF 文檔。
一、核心組件:PdfComparer 類
PdfComparer 是 Free Spire.PDF for .NET 提供的高階封裝類,專為 PDF 文檔對比設計:它會自動分析兩個 PDF 的內容差異(文本增刪、修改等),並將對比結果輸出為新的PDF文檔。
比較結果的呈現方式
生成的比較結果文檔採用直觀的視覺標註:
- PDF 完全一致:無高亮標記,僅展示原文檔內容
- 新增內容:通常以黃色高亮顯示
- 刪除內容:通常以紅色高亮標記
二、安裝 Free Spire.PDF
推薦通過 NuGet 包管理器安裝,步驟如下:
- 打開項目,右鍵點擊“管理NuGet程序包”;
- 搜索“FreeSpire.PDF”,選擇最新穩定版安裝;
或通過NuGet命令行安裝:
Install-Package FreeSpire.PDF
三、如何通過 C# 對比兩個 PDF 文檔
核心思路:
Free Spire.PDF 的對比邏輯極簡,無需手動處理頁面、文本提取,核心步驟僅4步:
- 實例化
PdfDocument對象,分別加載兩個待對比的 PDF 文件; - 實例化
PdfComparer對象,傳入兩個已加載的 PDF 文檔; - 調用
PdfComparer.Compare()方法,指定對比結果PDF的保存路徑; - 釋放PDF文檔資源,避免內存泄漏。
重要説明:免費版本在處理 PDF 時有一定頁數限制,但對於大多數基本比較需求已經足夠。
完整代碼:
以下幾行簡單代碼實現了對比兩個 PDF 文檔的文本內容:
using Spire.Pdf;
using Spire.Pdf.Comparison;
namespace ComparePDF
{
class Program
{
static void Main(string[] args)
{
// 加載兩個待對比的 PDF 文檔
PdfDocument pdf1 = new PdfDocument();
pdf1.LoadFromFile("Sample1.pdf");
PdfDocument pdf2 = new PdfDocument();
pdf2.LoadFromFile("Sample2.pdf");
// 實例化PdfComparer,傳入兩個文檔
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
// 執行對比並保存結果PDF
comparer.Compare("ComparingResult.pdf");
pdf1.Close();
pdf2.Close();
}
}
}
基於 PdfComparer 類的 C# PDF 對比方案十分簡單高效,無需手動處理底層對比邏輯,且能直接生成帶差異標記的 PDF 結果文檔,比純文本差異日誌更易閲讀。