如何儲存及編輯 PDF 修訂歷史记录

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

PDF修訂歷史指的是一項功能或能力,允許您跟踪並管理隨時間對PDF文件所做的更改。它經常用於多個用戶共同協作一個文件的情況中,您想要保持該文件修訂的記錄,包括誰進行了更改以及何時進行的。

在數位簽章的背景下,IronPDF 具備管理修訂歷史和回溯到特定版本的功能。

開始使用 IronPDF

立即在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer


保存並簽署 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");
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")
VB   C#

了解遞增保存簽名的方法

雖然某些觀眾如 Chrome 瀏覽器僅顯示一個版本,PDF 文件具有儲存文件先前版本的能力,類似於 Git 提交歷史。 您會在例如Adobe Acrobat這樣的進階PDF檢視器中看到這個功能。

處理PDF簽名時,了解這點非常重要,因為簽名PDF的行為適用於PDF的當前迭代。 您的 PDF 可能包含舊版本的簽名,或可能有一些未簽名的版本。 我們可以將範例如下視覺化:

PDF文件迭代證書A證書 B證書C證書 D
(第一次保存)

(僅限表單欄位編輯)

(僅限表單欄位編輯)
(僅編輯過的表單欄位)

不能再做任何編輯

不能再做任何編輯

不能再做任何編輯

上面,我們有一份已經經過 6 次不同迭代的文件。 這份文件可能正在公司各部門之間流傳,經過批准後在第三次迭代中被最終確定。在此迭代中,甲方和乙方在設置了「僅限表單字段編輯」權限的情況下簽署了該文件。 這意味著允許在PDF文件中填寫表格字段,但對文件的任何其他更改將使其簽名無效。

在上述範例中,我們可以假設是 C 個人填寫了表格並將其發回給 A、B 和 D 個人,這三個人在文件上進行最終簽署,並設置了「不允許編輯」的權限。 由於此文件中沒有採取任何無效動作,當我們執行IronPDF的簽名方法時,我們將獲得

恢復到舊版本

要回滾到 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")
VB   C#