如何在 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. using 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

簡化工作流程(6 個步驟)

  1. 下載 C# 函式庫,透過 IronPDF 儲存及編輯 PDF 修訂歷史紀錄
  2. 使用 SaveAsRevision 方法儲存 PDF 版本。
  3. 使用 GetRevision 方法檢索 PDF 版本。
  4. 存取 RevisionCount 屬性以取得修訂次數。
  5. 呼叫 TrackChanges: ChangeTrackingModes.EnableChangeTracking 方法以管理中間修訂版本的元資料。
  6. 使用 SaveAs 儲存最終的 PDF 檔案。

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

在以下範例中,我們開啟一個 PDF 檔案,進行各種編輯,然後簽署後再儲存。 關於簽名權限,我們僅允許將"表單填寫"設為未來的編輯選項; 否則,該簽名將因任何其他編輯而失效。

接著我們呼叫 SaveAsRevision 將修訂版本儲存至版本歷史,並將新文件儲存至磁碟。 此方法對於在Enterprise應用程式中實作數位簽章工作流程時特別有用,因為在這些情境下,文件的完整性與稽核追蹤至關重要。

請注意為提升 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");
Imports IronPdf
Imports IronPdf.Rendering

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

Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()

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

ChangeTrackingModes.EnableChangeTracking 參數對於維持完整的稽核追蹤至關重要。 啟用此功能後,IronPDF 會將所有文件修改內容保存為獨立圖層,讓使用者能夠瀏覽文件的修改歷史紀錄。 此功能整合了 PDF 安全與權限機制,以確保僅授權使用者能存取特定版本。

為何理解"增量節省"對簽名至關重要?

雖然某些檢視器(如 Chrome 瀏覽器)僅顯示單一版本,但 PDF 檔案可儲存文件的先前版本,類似於 Git 的提交歷史紀錄。 您會在 Adobe Acrobat 等進階 PDF 檢視器中看到此功能。 在使用已簽署 PDF 時,理解此增量節省機制至關重要,因為每個簽名皆適用於特定的文件狀態。

處理 PDF 簽名時,請注意:對 PDF 進行簽名僅適用於該 PDF 的當前版本。 您的 PDF 檔案可能包含舊版簽名,或可能有未簽名的版本。 我們可以將其具體化為以下範例:

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

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

(不得再進行任何編輯)

(不得再進行任何編輯)

上文所示文件已歷經 6 次修訂。 本文件經核准後,可在公司各部門間傳閱,直至 3 版本定稿為止。 在此迭代中,A 先生與 B 先生均在設定為"僅限表單欄位編輯"權限的情況下簽署了該文件。 這意味著允許在 PDF 文件中填寫表單欄位,但對文件進行任何其他變更都會使簽名失效。

在上述範例中,假設人員 C 填寫了表單並將其發送回人員 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");
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("report.pdf")

Private versions As Integer = pdf.RevisionCount ' total revisions

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

GetRevision 方法會建立一個新的 PDF 文件實例,其中僅包含截至指定修訂號為止的內容。 此工具適用於以下情境:

  • 您需要比較文件的不同版本
  • 因未經授權的變更,某個簽名已被視為無效
  • 您希望從較早的版本分支,以採用不同的審核工作流程
  • 您需要透過展示特定時間點的文件狀態來證明符合規範

處理修訂版本時,還原操作不會影響原始 PDF 檔案——它會建立一個新的文件實例。 此方法在維持資料完整性的同時,亦能提供管理文件版本的靈活性。 若需更進階的 PDF 處理技術,請探索 IronPDF 的全面編輯功能

PDF 修訂版本管理的最佳實踐

在應用程式中實作版本歷史記錄時,請參考以下最佳實務:

  1. 務必啟用修訂追蹤:開啟需要修訂歷史紀錄的 PDF 檔案時,請設定 EnableChangeTracking

  2. 記錄修訂策略:應清楚記錄何時以及為何儲存修訂內容,特別是在多使用者環境中。

  3. 實施存取控制:結合修訂歷史紀錄與 PDF 權限及密碼,確保僅授權使用者能建立或存取特定修訂版本。

  4. 定期匯出將重要修訂版本定期匯出至獨立檔案,以供長期歸檔。

  5. 測試簽名相容性:測試不同簽名權限如何與您的修訂工作流程互動,以避免發生意外的無效化情況。

透過遵循這些實務準則並善用 IronPDF 的修訂管理功能,您可以建立精細的工作流程,在整個協作過程中既能維持完整的稽核追蹤,又能確保文件的完整性。 若需進一步了解如何在您的應用程式中實作這些功能,請參閱詳盡的 IronPDF 文件,或探索符合您 Enterprise 需求的授權方案

常見問題

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

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

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

IronPDF 的版本歷史記錄功能讓開發人員能夠追蹤文件隨時間的變更,並透過 GetRevision 方法回滾至先前版本,從而實現協作工作流程。這對於在 Enterprise 應用程式中維持稽核追蹤至關重要。

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

若要在 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 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。