如何在 C# 中保存和編輯 PDF 修訂歷史

如何在 C# 中儲存和編輯 PDF 修訂歷史記錄

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF使 C# 開發人員能夠使用修訂歷史記錄來追蹤和管理 PDF 文件隨時間的變化。 使用 SaveAsRevision 方法儲存文件迭代,並使用 GetRevision 方法回滾到先前的版本,以便協作處理文件。

快速入門:使用IronPDF儲存 PDF 修訂

在 C# 應用程式中使用IronPDF管理和保存 PDF 版本。 本指南示範如何使用 IronPDF 的 SaveAsRevision 方法儲存文件版本,以追蹤和管理 PDF 變更。 載入 PDF 文件並將其另存為單獨的版本,以存檔所有修改。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 複製並運行這段程式碼。

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.SaveAsRevision("revision1.pdf");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronPDF

    arrow pointer

as-heading:3(最小工作流程(5 個步驟))

1.下載用於使用IronPDF儲存和編輯 PDF 修訂歷史記錄的 C# 庫

  1. 使用 SaveAsRevision 方法儲存 PDF 版本。
  2. 使用 GetRevision 方法檢索 PDF 版本。
  3. 取得 RevisionCount 屬性的修訂計數。
  4. 使用 SaveAs 儲存最終 PDF。

如何儲存並簽署PDF修訂版本?

在下面的範例中,我們打開一個 PDF 文件,進行各種編輯,然後在儲存之前簽名。 對於簽名權限,我們只允許在以後編輯時填寫表單; 否則,該簽名將無法再進行任何編輯。

然後我們呼叫 SaveAsRevision 將修訂儲存到歷史記錄並將我們的新文件儲存到磁碟。 在企業應用程式中實施數位簽章工作流程時,這種方法非常有用,因為文件完整性和稽核追蹤至關重要。

請注意為了提高 PDF 匯出效能,我們將 TrackChanges 選項設為 false。 若要使用增量儲存功能,必須將此選項設為 true。

:path=/static-assets/pdf/content-code-examples/how-to/signing-revision.cs
using IronPdf;
using IronPdf.Rendering;

// Import PDF and enable TrackChanges
PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf", TrackChanges: ChangeTrackingModes.EnableChangeTracking);
// ... various edits ...
pdf.SignWithFile("/assets/IronSignature.p12", "password", null, IronPdf.Signing.SignaturePermissions.AdditionalSignaturesAndFormFillingAllowed);

PdfDocument pdfWithRevision = pdf.SaveAsRevision();

pdfWithRevision.SaveAs("annual_census_2.pdf");
$vbLabelText   $csharpLabel

ChangeTrackingModes.EnableChangeTracking 參數對於維護完整的稽核追蹤至關重要。 啟用後, IronPDF會將所有文件修改儲存為單獨的圖層,從而允許瀏覽文件的歷史記錄。 此功能與PDF 安全性和權限集成,以確保只有授權使用者才能存取特定版本。

為什麼了解增量節省對簽名很重要?

雖然有些檢視器(例如 Chrome 瀏覽器)只顯示一個版本,但 PDF 檔案可以儲存文件的先前版本,類似於 Git 提交歷史記錄。 您會在 Adob​​e Acrobat 等高級 PDF 檢視器中看到這一點。 了解這種增量保存機制對於處理已簽署的 PDF 文件至關重要,因為每個簽名都適用於特定的文件狀態。

處理 PDF 簽章時,請注意,對 PDF 進行簽章僅適用於目前版本的 PDF。 您的 PDF 檔案可能包含舊版本的簽名,也可能包含未簽名的版​​本。 我們可以這樣形象化說明:

PDF文件迭代 證書A B級證書 C級證書 D級證書
0(首次儲存)
1
2
3
(僅限表單欄位編輯)

(僅限表單欄位編輯)
4(僅編輯表單欄位)
5
(不允許再進行任何編輯)

(不允許再進行任何編輯)

(不允許再進行任何編輯)

上面這份文件已經修改了 6 次。 該文件可能會在公司各部門之間流轉,並經審批後在第三次迭代中最終定稿。在這次迭代中,A 和 B 都簽署了該文檔,並設定了"僅表單欄位編輯"權限。 這意味著允許填寫 PDF 文件中的表單字段,但對文件的任何其他更改將使他們的簽名無效。

在上面的例子中,假設 C 填寫了表格並將其發回給 A、B 和 D,A、B 和 D 都最終在文件上簽字,並授予了"不允許編輯"的權限。 由於本文檔中沒有採取任何無效操作,因此當我們執行 IronPDF 的簽章方法時,會得到true

這種增量保存方法與全面的 PDF 安全功能相結合非常有價值,因為它確保每個簽名僅在其應用的特定文件狀態下有效。 這樣可以防止未經授權的修改,同時保留所有更改的完整審計追蹤。

如何回滾到舊版本?

若要回滾到 PDF 的先前版本,請使用 GetRevision 方法。 這將忽略自本次修訂以來所做的任何更改,包括新的簽名。 當您需要從意外變更中復原或查看文件隨時間推移的演變過程時,此功能至關重要。

:path=/static-assets/pdf/content-code-examples/how-to/signing-revert-revision.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("report.pdf");

int versions = pdf.RevisionCount; // total revisions

PdfDocument rolledBackPdf = pdf.GetRevision(2);
rolledBackPdf.SaveAs("report-draft.pdf");
$vbLabelText   $csharpLabel

GetRevision 方法建立一個新的 PDF 文件實例,其中僅包含指定版本號之前的內容。 這在以下情況下非常有用:

您需要比較同一份文件的不同版本。 由於未經授權的更改,簽名已失效。 您希望從早期版本分支出來,採用不同的審批工作流程。 您需要透過展示特定時間點的文件狀態來證明合規性。

在進行版本修改時,回溯操作不會影響原始 PDF 文件,而是建立一個新的文檔實例。 這種方法既能保持資料的完整性,又能靈活地管理文件版本。 如需更進階的 PDF 處理技巧,請探索IronPDF 的全面編輯功能

PDF修訂管理最佳實踐

在應用程式中實現版本歷史記錄時,請考慮以下最佳實踐:

1.請務必啟用變更追蹤:開啟需要修訂歷史記錄的 PDF 時設定 TrackChanges: ChangeTrackingModes.EnableChangeTracking

2.記錄你的修訂策略:保持清晰的文件記錄何時以及為什麼保存修訂,尤其是在多用戶環境中。

3.實施存取控制:將修訂歷史記錄與PDF 權限和密碼結合,以確保只有授權使用者才能建立或存取特定修訂版本。

4.定期匯出:定期將重要版本匯出到單獨的文件中,以便長期存檔。

5.測試簽名相容性:測試不同的簽名權限如何與您的修訂工作流程交互,以避免意外失效。

透過遵循這些做法並利用 IronPDF 的版本管理功能,您可以建立複雜的文件工作流程,在保持完整審計追蹤的同時,確保整個協作過程中的文件完整性。 如需了解有關在應用程式中實現這些功能的更多信息,請查閱IronPDF 的完整文件或了解滿足您企業需求的許可選項

常見問題解答

如何在 C# 中儲存 PDF 修訂?

您可以使用 IronPDF 的 SaveAsRevision 方法在 C# 中保存 PDF 的修訂版本。只需載入您的 PDF 文件,並呼叫 pdf.SaveAsRevision('revision1.pdf') 即可建立一個可追蹤文件所有修改的儲存版本。

追蹤 PDF 修訂歷史的目的是什麼?

IronPDF 的修訂歷史功能可讓開發人員追蹤文件隨時間發生的變化,實現協作工作流程,您可以使用 GetRevision 方法回滾到之前的版本。這對於在企業應用程式中維護稽核追蹤是非常重要的。

如何啟用增量儲存的變更追蹤?

若要在 IronPDF 中啟用變更追蹤功能,請將 TrackChanges 選項設定為 true,並使用 ChangeTrackingModes.EnableChangeTracking 參數。這可將所有的文件修改保留為獨立的圖層,允許瀏覽文件的完整歷史。

我可以在 PDF 上簽名並維護其修訂歷史嗎?

是的,IronPDF 允許您在保持修訂歷史的同時簽署 PDF。當您在文件上簽名時,簽名適用於目前的迭代。您可以設定特定權限,例如僅限填表,以防止簽名因未來的編輯而失效。

如何擷取先前的 PDF 版本?

IronPDF 提供 GetRevision 方法來擷取 PDF 文件的先前版本。您也可以使用 RevisionCount 屬性來判斷文件歷史上有多少個修訂版本。

當我儲存新版本時,簽名會發生什麼變化?

在簽署文件後使用 IronPDF 的 SaveAsRevision 方法時,簽署對該特定修訂版仍然有效。但是,任何超出允許權限的編輯(例如填表格)都會使簽署無效,從而確保文件的完整性。

所有 PDF 檢視器都能看到修訂歷史嗎?

雖然 IronPDF 會儲存類似 Git 提交的完整修訂歷史,但並非所有 PDF 檢視器都會顯示這些資訊。Chrome 等基本檢視器只能顯示目前的版本,而 Adobe Acrobat 等進階檢視器可以顯示完整的修訂歷史。

增量儲存如何改善 PDF 的效能?

IronPDF 的增量儲存功能透過只儲存變更而非重寫整個文件來改善匯出效能。在不需要修改追蹤時,您可以將 TrackChanges 設定為 false 來優化效能,不過增量儲存必須啟用此功能。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 17,803,474 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想快速取得證據? PM > Install-Package IronPdf
運行範例看著你的HTML程式碼變成PDF檔。