如何在 C# 中儲存與編輯 PDF 修訂歷史紀錄
IronPDF 讓 C# 開發人員能夠透過修訂歷史記錄,追蹤並管理 PDF 文件隨時間推移的變更。 在共同編輯文件時,請使用 SaveAsRevision 方法節省文件版本,並透過 GetRevision 回滾至先前版本。
快速入門:使用 IronPDF 儲存 PDF 修訂版本
在您的 C# 應用程式中使用 IronPDF 管理並儲存 PDF 修訂版本。 本指南將示範如何使用 IronPDF 的 SaveAsRevision 方法儲存文件版本,以追蹤及管理 PDF 變更。 載入 PDF 檔案並將其儲存為獨立的修訂版本,以歸檔所有修改內容。
簡化工作流程(6 個步驟)
- 下載 C# 函式庫,透過 IronPDF 儲存及編輯 PDF 修訂歷史紀錄
- 使用
SaveAsRevision方法儲存 PDF 版本。 - 使用
GetRevision方法檢索 PDF 版本。 - 存取
RevisionCount屬性以取得修訂次數。 - 呼叫
TrackChanges: ChangeTrackingModes.EnableChangeTracking方法以管理中間修訂版本的元資料。 - 使用
SaveAs儲存最終的 PDF 檔案。
如何儲存並簽署 PDF 修訂版本?
在以下範例中,我們開啟一個 PDF 檔案,進行各種編輯,然後簽署後再儲存。 關於簽名權限,我們僅允許將"表單填寫"設為未來的編輯選項; 否則,該簽名將因任何其他編輯而失效。
接著我們呼叫 SaveAsRevision 將修訂版本儲存至版本歷史,並將新文件儲存至磁碟。 此方法對於在Enterprise應用程式中實作數位簽章工作流程時特別有用,因為在這些情境下,文件的完整性與稽核追蹤至關重要。
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")
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")
GetRevision 方法會建立一個新的 PDF 文件實例,其中僅包含截至指定修訂號為止的內容。 此工具適用於以下情境:
- 您需要比較文件的不同版本
- 因未經授權的變更,某個簽名已被視為無效
- 您希望從較早的版本分支,以採用不同的審核工作流程
- 您需要透過展示特定時間點的文件狀態來證明符合規範
處理修訂版本時,還原操作不會影響原始 PDF 檔案——它會建立一個新的文件實例。 此方法在維持資料完整性的同時,亦能提供管理文件版本的靈活性。 若需更進階的 PDF 處理技術,請探索 IronPDF 的全面編輯功能。
PDF 修訂版本管理的最佳實踐
在應用程式中實作版本歷史記錄時,請參考以下最佳實務:
-
務必啟用修訂追蹤:開啟需要修訂歷史紀錄的 PDF 檔案時,請設定
EnableChangeTracking。 -
記錄修訂策略:應清楚記錄何時以及為何儲存修訂內容,特別是在多使用者環境中。
-
實施存取控制:結合修訂歷史紀錄與 PDF 權限及密碼,確保僅授權使用者能建立或存取特定修訂版本。
- 測試簽名相容性:測試不同簽名權限如何與您的修訂工作流程互動,以避免發生意外的無效化情況。
透過遵循這些實務準則並善用 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 來優化效能,但若要進行增量儲存,則必須啟用此功能。

