如何儲存及編輯 PDF 修訂歷史记录
PDF修訂歷史指的是一項功能或能力,允許您跟踪並管理隨時間對PDF文件所做的更改。它經常用於多個用戶共同協作一個文件的情況中,您想要保持該文件修訂的記錄,包括誰進行了更改以及何時進行的。
在數位簽章的背景下,IronPDF 具備管理修訂歷史和回溯到特定版本的功能。
開始使用 IronPDF
立即在您的專案中使用IronPDF,並享受免費試用。
How to Save & Edit PDF Revision History
- 下載 C# 庫以使用 IronPDF 儲存和編輯 PDF 修訂歷史
- 使用
SaveAsRevision
方法將PDF另存為不同版本 - 使用
GetRevision
方法檢索 PDF 版本 - 訪問RevisionCount屬性以取得修訂次數
- 儲存並匯出您的 PDF
保存並簽署 PDF 修訂版本迭代
在以下範例中,我們打開一個 PDF 檔案,進行各種編輯,然後在儲存之前簽名。 对于签名权限,我们将只允许以表单填充为未来的编辑,否则任何其他编辑都将使签名失效。
然後我們將調用SaveAsRevision
來將修訂版本保存到歷史記錄中,然後將我們的新文檔保存到磁碟。
[{i:(為了提高 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")
了解遞增保存簽名的方法
雖然某些觀眾如 Chrome 瀏覽器僅顯示一個版本,PDF 文件具有儲存文件先前版本的能力,類似於 Git 提交歷史。 您會在例如Adobe Acrobat這樣的進階PDF檢視器中看到這個功能。
處理PDF簽名時,了解這點非常重要,因為簽名PDF的行為適用於PDF的當前迭代。 您的 PDF 可能包含舊版本的簽名,或可能有一些未簽名的版本。 我們可以將範例如下視覺化:
PDF Document Iteration | Certificate A | Certificate B | Certificate C | Certificate D |
---|---|---|---|---|
0 (first save) | ✅ | |||
1 | ||||
2 | ||||
3 | ✅ (form field edits only) | ✅ (form field edits only) | ||
4 (only form fields edited) | ✅ | |||
5 | ✅ (no further edits allowed) | ✅ (no further edits allowed) | ✅ (no further edits allowed) |
上面,我們有一份已經經過 6 次不同迭代的文件。 這份文件可能正在公司各部門之間流傳,經過批准後在第三次迭代中被最終確定。在此迭代中,甲方和乙方在設置了「僅限表單字段編輯」權限的情況下簽署了該文件。 這意味著允許在PDF文件中填寫表格字段,但對文件的任何其他更改將使其簽名無效。
在上述範例中,我們可以假設是 C 個人填寫了表格並將其發回給 A、B 和 D 個人,這三個人在文件上進行最終簽署,並設置了「不允許編輯」的權限。 由於在此文件中未採取任何使其失效的動作,當我們運行IronPDF的簽名方法時,我們將會得到true。
恢復到舊版本
若要回復至 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")