如何保存和编辑 PDF 修订历史
PDF修订历史是指一种功能或能力,允许您跟踪和管理随时间对PDF文档所做的更改。当多个用户协作处理一个文档,并且您想要保留文档修订的记录,包括谁进行了更改以及何时进行的,这种功能通常会被使用。
在数字签名方面,IronPdf 具有管理修订历史和回滚到特定版本的功能。
开始使用IronPDF
立即在您的项目中开始使用IronPDF,并享受免费试用。
如何保存和编辑 PDF 修订历史
- 下载用 IronPdf 保存和编辑 PDF 修订历史的 C# 库
- 使用
保存为修订
方法将 PDF 保存为版本 - 使用
获取版本
方法 - 访问 修订次数 属性来获取修订计数
- 保存并导出 PDF
保存并签署PDF修订版本迭代
在下面的示例中,我们打开一个 PDF 文件,进行各种编辑,然后在保存前签名。 对于签名权限,我们只允许表格填写作为未来的编辑,否则任何其他编辑都将导致签名失效。
然后我们将调用 SaveAsRevision
来将修订版保存到历史记录中,然后将新文档保存到磁盘上。
请注意
: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提交历史。 您将在更高级的PDF查看器中看到这一点,例如Adobe Acrobat。
在处理PDF签名时,了解这一点很重要,因为对PDF的签名操作仅适用于PDF的当前版本。 您的PDF可能包含旧版本的签名,或者可能有几个未签名的版本。 我们可以想象这样一个例子
PDF 文档迭代 | 证书 A | 证书 B | 证书 C | 证书 D |
---|---|---|---|---|
(第一次保存) | ✅ | |||
✅ (仅限表格字段编辑) | ✅ (仅限表格字段编辑) | |||
(仅编辑表格字段) | ✅ | |||
✅ (不允许进一步编辑) | ✅ (不允许进一步编辑) | ✅ (不允许进一步编辑) |
以上是一份经过 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");
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")