由於 PDF 是數字世界中最常用的格式之一,因此通常需要比較同一文檔的兩個版本。本文討論如何使用 C# 比較兩個 PDF 文檔並突出顯示差異。此外,我們將看到如何比較受密碼保護的 PDF 文件、接受和拒絕更改,以及使用 C# 示例比較兩個以上的 PDF 文件。
此處討論以下主題:
.NET API 比較 PDF 文件
GroupDocs.Comparison for .NET 是一種 API,它允許在 .NET 應用程序中比較多個 PDF 文檔和許多其他具有相同文檔格式的文件。我將在本文的 C# 代碼示例中使用此 API 來比較 PDF 文檔。
您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API。
PM> Install-Package GroupDocs.Comparison
使用 C# 比較 PDF 文檔
如果您有一個 PDF 文檔的多個副本,您可以比較這些文件以找出差異(添加、刪除)。比較 PDF 內容後,您可以創建一個新文檔,突出顯示所有已識別的更改。以下是使用 C# 比較兩個 PDF 文檔並突出顯示差異的步驟。
以下 C# 代碼片段顯示瞭如何比較 PDF 文檔並突出顯示結果文檔中的更改。
/*
* 使用 C# 比較兩個 PDF 文檔並突出顯示更改
*/
using (Comparer comparer = new Comparer(@"path/document-ver1.pdf"))
{
comparer.Add(@"path/document-ver2.pdf");
comparer.Compare(@"path/compared-result.pdf");
}
使用 C# 接受或拒絕 PDF 文件的已識別更改
就像跟踪更改功能一樣,您可以通過編程方式接受或拒絕 PDF 文檔中每個已識別的更改。以下步驟顯示如何比較然後接受或拒絕 PDF 文檔中已識別的更改。
- 使用 Comparer 類加載源和目標 PDF 文件。
- 使用 Compare() 方法比較加載的文檔。
- 使用 GetChanges() 方法獲取已識別的更改。
- 現在遍歷更改並設置 ComparisonAction。
- 為每個更改選擇接受或拒絕。
- 調用 ApplyChanges() 方法以獲取包含已接受更改的結果文檔。
以下代碼片段比較兩個 PDF 文檔,然後接受一個已識別的更改,然後使用 C# 拒絕另一個文檔。
/*
* 通過使用 C# 比較 PDF 文檔來接受和拒絕已識別的更改
*/
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
comparer.Add(@"path/document-2.pdf");
comparer.Compare();
ChangeInfo[] changes = comparer.GetChanges();
// 拒絕第一個確定的更改,並且不會將其添加到結果文檔中
changes[0].ComparisonAction = ComparisonAction.Reject;
comparer.ApplyChanges(@"path/rejected-change-result.pdf", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });
changes = comparer.GetChanges();
changes[0].ComparisonAction = ComparisonAction.Accept;
comparer.ApplyChanges(@"path/accepted-change-result.pdf", new ApplyChangeOptions { Changes = changes });
}
使用 C# 比較兩個以上的 PDF 文件
同樣,您可以比較兩個以上的文檔。以下是比較多個 PDF 文檔的差異並突出顯示已識別更改的步驟。
以下示例顯示如何在 C# 中比較多個 PDF 文件並在生成的文檔中獲取更改。
/*
* 使用 C# 比較多個 PDF 文檔
*/
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
comparer.Add(@"path/document-2.pdf");
comparer.Add(@"path/document-3.pdf");
comparer.Add(@"path/document-4.pdf");
comparer.Compare(@"path/compare-result.pdf");
}
使用 C# 比較受密碼保護的 PDF 文檔
您可以通過在加載這些文檔時提供密碼來比較受密碼保護的文件。以下步驟顯示我們如何使用 C# 比較受密碼保護的文檔的 PDF 內容。
以下示例比較兩個受密碼保護的 PDF 文件,並使用 C# 在單獨的文檔中突出顯示已識別的差異。
/*
* 使用 C# 比較受密碼保護的 PDF 文檔
*/
using (Comparer comparer = new Comparer(@"path/protected-document-1.pdf", new LoadOptions(){ Password = "SourceFilePassword" }))
{
comparer.Add(@"path/protected-document-2.pdf", new LoadOptions() { Password = "TargetFilePassword" });
comparer.Compare(@"path/compared-protected-docs-result.pdf");
}
獲取免費的 API 許可證
您可以 獲得免費的臨時許可證 以不受評估限制地使用 API。
結論
總之,我們學習瞭如何使用 C# 比較兩個或多個 PDF 文件。此外,我們突出顯示差異並以編程方式接受或拒絕已識別的更改。最後,我們了解瞭如何在 .NET 應用程序中比較受密碼保護的 PDF 文檔。
其他幾個 自定義 可用於控制比較結果。您可以設置比較敏感度、僅顯示摘要頁面、忽略間隙等。從 文檔 了解有關 GroupDocs.Comparison for .NET 的更多信息。您可以為各種文檔格式構建自己的文檔比較應用程序。如有疑問,請通過論壇 聯繫我們。