如何保存和编辑 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");
了解签名的增量保存方式
虽然某些浏览器如Chrome浏览器只显示一个版本,PDF文件具有存储文档的早期版本的能力,类似于Git提交历史。 您将在更高级的PDF查看器中看到这一点,例如Adobe Acrobat。
在处理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 次不同迭代的文档。 此文件可能在公司各部门之间流传,并在第3次迭代时得到批准并最终确定。在此迭代中,甲方和乙方在设置了“仅表单字段编辑”权限的情况下签署了该文件。 这意味着可以填写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");