如何保存和编辑 PDF 修订历史

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

PDF修订历史是指一种功能或能力,允许您跟踪和管理随时间对PDF文档所做的更改。当多个用户协作处理一个文档,并且您想要保留文档修订的记录,包括谁进行了更改以及何时进行的,这种功能通常会被使用。

在数字签名的背景下,IronPdf具有管理修订历史记录和回滚到特定版本的功能。

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

适用于PDF的C# NuGet库

安装使用 NuGet

Install-Package IronPdf
Java PDF JAR

下载 DLL

下载DLL

手动安装到你的项目中

开始在您的项目中使用IronPDF,并立即获取免费试用。

第一步:
green arrow pointer

查看 IronPDFNuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。

适用于PDF的C# NuGet库 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
(不允许进一步编辑)

(不允许进一步编辑)

(不允许进一步编辑)
上面的文档经过了六次不同的迭代。 此文件可能在公司各部门之间流传,并在第3次迭代时得到批准并最终确定。在此迭代中,甲方和乙方在设置了“仅表单字段编辑”权限的情况下签署了该文件。 这意味着可以填写PDF文档中的表单字段,但任何对文档的其他更改将使它们的签名无效。 在上面的例子中,我们可以假设C是填写表格并将其发送回给A、B和D的人,他们都在文档上最后签字,并设置了“禁止编辑”的权限。 由于在此文件中未执行任何使其无效的操作,当我们运行IronPDF的签名方法时,我们将得到**true**。 ## 回滚到旧版本 要回滚到 PDF 的上一个版本,您可以使用 `GetRevision` 方法。 这将忽略自该版本以来所做的任何更改,包括较新的签名。 要做到这一点,请使用: ```cs :path=/static-assets/pdf/content-code-examples/how-to/signing-revert-revision.cs ```