如何保存及編輯 PDF 修訂歷史

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

PDF 修訂歷史是指一種功能或能力,使您能夠追蹤和管理隨著時間推移對 PDF 文件所做的更改。這通常用於多名使用者共同協作編輯文件的情況,您可以保留文件修訂的記錄,包括誰做了更改以及更改的時間。

在數位簽章的情境中,IronPDF 具有管理修訂歷史和回滾至特定版本的能力。

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

C# NuGet 程式庫用于 PDF

安裝與 NuGet

Install-Package IronPdf
Java PDF JAR

下載 DLL

下載DLL

手動安裝到您的項目中

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

第一步:
green arrow pointer

查看 IronPDFNuget 快速安裝和部署。已被下載超過800萬次,它正用C#改變PDF。

C# NuGet 程式庫用于 PDF nuget.org/packages/IronPdf/
Install-Package IronPdf

請考慮安裝 IronPDF DLL 直接下載並手動安裝到您的專案或GAC表單: IronPdf.zip

手動安裝到您的項目中

下載DLL

儲存和簽署 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 提交歷史記錄一樣儲存以前版本的能力。你可以在更高級的 PDF 查看器中看到這一點,例如 Adobe Acrobat。

在處理 PDF 簽名時,了解這一點很重要,因為簽署 PDF 的操作適用於 PDF 的當前迭代版本。你的 PDF 可能有較舊版本的簽名,或可能有一些未簽署的版本。我們可以像下面這樣視覺化一個範例:

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

(僅限表單欄位編輯)
4(僅編輯過的表單欄位)
5
不能再做任何編輯

不能再做任何編輯

不能再做任何編輯

上方我們有一份經過了6次不同版本的文件。該文件可能會在公司的各個部門之間傳遞並獲得批准,直到第3次版本才最終定稿。在這個版本中,Person A 和 Person B 都在文件上簽了名,並設置了“僅允許編輯表單字段”的權限。這意味著可以在 PDF 文件中填寫表單字段,但對文件的任何其他更改都會使他們的簽名失效。

在上面的例子中,我們可以假設 Person C 填寫了表單並將其反饋給 Person 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")
VB   C#