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

簡化工作流程(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 安全功能結合使用,將極具價值,因為它能確保每個簽名僅對其所套用的特定文件狀態有效。 此機制可防止未經授權的修改,同時完整保留所有變更的稽核追蹤紀錄。

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

我最喜歡的程式庫是IronPDF。它允許快速高效地操作PDF文件。它還有許多有價值的功能,例如導出到PDF/A格式和數位簽署PDF文件。

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

Milan Jovanovic

Microsoft MVP

查看案例研究
Icon Quote related to 為何理解"增量節省"對簽名至關重要?

IronOCR意味著我們每年可以從手動處理中節省$40,000,同時提高生產力,釋放資源以進行高影響的任務。我會強烈推薦它。

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

Brent Matzelle

首席技術官,OPYN

查看案例研究
Icon Quote related to 為何理解"增量節省"對簽名至關重要?

IronSuite在我們的運營中扮演著至關重要的角色。這些工具增加了包括建立平面圖和改善庫存管理在內的業務效率。

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

David Jones

首席軟體工程師,Agorus Build

查看案例研究

如何還原至舊版本?

若要還原至 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方法回滾到以前的版本。這對於維護企業應用中的審計軌跡至關重要。

如何啟用增量保存的更改追踪?

要在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大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 19,936,792 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想快速獲得證明嗎? PM > Install-Package IronPdf
執行範例 看您的HTML變成PDF。