如何在C#中保存和编辑PDF修订历史

如何在 C# 中保存和编辑 PDF 修订历史

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

IronPDF 使 C# 开发人员能够使用修订历史跟踪和管理 PDF 文档随时间发生的变化。 在文档协作时,使用 SaveAsRevision 方法保存文档迭代,并使用 GetRevision 回滚到以前的版本。

快速开始: 使用IronPDF保存PDF修订)

在您的 C# 应用程序中使用 IronPDF 管理和保存 PDF 修订。 本指南演示了使用 IronPDF 的 SaveAsRevision 方法保存文档版本,以跟踪和管理 PDF 变更。 加载 PDF 文件并将其保存为不同的修订版,以便将所有修改存档。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronPDF

    PM > Install-Package IronPdf

  2. 复制并运行这段代码。

    var pdf = IronPdf.PdfDocument.FromFile("example.pdf");
    pdf.SaveAsRevision("revision1.pdf");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronPDF,免费试用!
    arrow pointer

as-heading:3(最小工作流(5步)

  1. 下载C#库以使用IronPDF保存和编辑PDF修订历史 2.使用 SaveAsRevision 方法保存 PDF 版本。 3.使用 GetRevision 方法检索 PDF 版本。 4.访问 RevisionCount 属性以查看修订计数。 5.使用 SaveAs 保存最终 PDF。

如何保存和签署 PDF 修订迭代? --> <!--说明:说明代码概念的图表或截图 --> 在下面的示例中,我们打开一个 PDF 文件,进行各种编辑,然后在保存前签名。 对于签名权限,我们只允许填写表格作为未来的编辑内容; 否则,任何其他编辑都会使签名失效。 然后,我们调用 `SaveAsRevision` 将修订保存到历史记录中,并将新文档保存到磁盘中。 在文档完整性和审计跟踪至关重要的企业应用中实施[数字签名工作流](https://ironpdf.com/how-to/signing/)时,这种方法非常有用。
请注意为提高 PDF 导出性能,我们将 `TrackChanges` 选项设置为 false。 该选项必须设置为 true 才能使用增量保存功能。
```csharp :path=/static-assets/pdf/content-code-examples/how-to/signing-revision.cs ``` `ChangeTrackingModes.EnableChangeTracking` 参数对于维护完整的审计跟踪至关重要。 启用后,IronPDF 会将所有文档修改保留为单独的图层,允许浏览文档的历史记录。 该功能与[IronPDF安全性和权限](https://ironpdf.com/how-to/pdf-permissions-passwords/)集成,以确保只有授权用户才能访问特定修订版。

为什么理解增量保存对签名很重要? <!--说明:说明代码概念的图表或截图 --> 虽然 Chrome 浏览器等一些阅读器只能显示一个版本,但 PDF 文件可以存储文档的以前版本,类似于 Git 的提交历史记录。 您将在 Adobe Acrobat 等高级 PDF 阅读器中看到这一点。 在处理 [ 已签名的 PDF](https://ironpdf.com/examples/digitally-sign-a-pdf/) 时,理解这种增量保存机制至关重要,因为每个签名都适用于特定的文档状态。 在处理 PDF 签名时,要知道签署 PDF 适用于 PDF 的当前迭代。 您的 PDF 可能有旧版本的签名,也可能有未签名的版本。 我们可以像这样可视化一个例子:
PDF 文档迭代 证书 A 证书 B C# 证书 证书 D
0(首次保存)
1
2
3
(仅限表单字段编辑)

(仅限表单字段编辑)
4 (仅编辑表单字段)
5
(不允许进一步编辑)

(不允许进一步编辑)

(不允许进一步编辑)
以上是一份经过 6 次迭代的文档。 该文档可能在公司各部门之间传递以获得批准,直到在迭代3时最终完成。在这一迭代中,A和B两人签署了文档,并设定了"仅限表单字段编辑"权限。 这意味着允许在 PDF 文档中填写表格字段,但对文档的任何其他改动都将导致其签名无效。 在上面的例子中,假设 C 人填写了表格,并将其发回给 A、B 和 D 人,他们都在文件上最后签了字,并注明了 "不允许编辑 "的权限。 由于本文档中未采取任何无效操作,因此当我们运行 IronPDF 的签名方法时,会得到 **true**。 当与 [全面的 PDF 安全功能](https://ironpdf.com/tutorials/csharp-pdf-security-complete-tutorial/)相结合时,这种增量保存方法就显得非常有价值,因为它可以确保每个签名仅对其应用的特定文档状态保持有效。 这样既能防止未经授权的修改,又能保持对所有更改的完整审计跟踪。

如何回滚到旧版本? <!--说明:说明代码概念的图表或截图 --> 使用 `GetRevision` 方法可回滚至 PDF 的上一修订版本。 这将忘记自该修订版以来的任何更改,包括更新的签名。 当您需要从不必要的改动中恢复,或审查文档随时间的演变时,这种功能是必不可少的。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/signing-revert-revision.cs ``` `GetRevision` 方法将创建一个新的 PDF 文档实例,其中仅包含指定版本号之前的内容。 这在以下情况下非常有用: - 您需要比较文档的不同版本 - 由于未经授权的更改,签名已失效 - 您希望从早期版本分支出一个不同的审批工作流程 - 您需要通过显示特定时间点的文档状态来证明合规性 在处理修订版时,回滚不会影响原始 PDF 文件,而是创建一个新的文档实例。 这种方法既能保持数据的完整性,又能灵活管理文件版本。 有关更高级的 PDF 操作技术,请探索 [IronPDF 的综合编辑功能](https://ironpdf.com/tutorials/csharp-edit-pdf-complete-tutorial/)。 ## 管理 PDF 修订的最佳实践 在应用程序中实施修订历史记录时,请考虑以下最佳实践: 1.**始终启用变更跟踪**:设置 `TrackChanges:ChangeTrackingModes.EnableChangeTracking` 打开需要修订历史记录的 PDF 时。 2.**记录您的修订策略**:保留有关何时以及为何保存修订的清晰文档,尤其是在多用户环境中。 3.**实施访问控制**:将修订历史记录与[IronPDF权限和密码](https://ironpdf.com/examples/security-and-metadata/)相结合,确保只有授权用户才能创建或访问特定修订。 4.**定期输出**:定期[将重要修订版](https://ironpdf.com/how-to/export-save-pdf-csharp/)导出到单独的文件中,以便长期存档。 5.**测试签名兼容性**:测试不同签名权限如何与修订工作流程交互,以避免意外失效。 通过遵循这些实践并利用 IronPDF 的修订管理功能,您可以创建复杂的文档工作流程,在整个协作过程中保持完整的审计跟踪,同时确保文档的完整性。 有关在您的应用程序中实现这些功能的更多信息,请查阅 [ 全面的 IronPDF 文档](https://ironpdf.com/how-to/revision-history/),或根据您的企业需求探索 [ 许可选项](https://ironpdf.com/licensing/)。

常见问题解答

如何用 C# 保存 PDF 修订版?

您可以使用 IronPDF 的 SaveAsRevision 方法在 C# 中保存 PDF 修订版。只需加载 PDF 文档并调用 pdf.SaveAsRevision('revision1.pdf'),即可创建一个跟踪文档所有修改的保存版本。

跟踪 PDF 修订历史的目的是什么?

IronPdf 的修订历史功能允许开发人员跟踪文档随时间发生的变化,实现协作工作流,您可以使用 GetRevision 方法回滚到以前的版本。这对于维护企业应用程序中的审计跟踪至关重要。

如何为增量保存启用变更跟踪?

要在 IronPdf 中启用更改跟踪功能,请将 TrackChanges 选项设置为 true 并使用 ChangeTrackingModes.EnableChangeTracking 参数。这样就能将所有文档修改保留为单独的图层,以便浏览文档的完整历史记录。

我能否在 PDF 上签名并保留其修订历史?

是的,IronPDF 允许您在保持修订历史的同时签署 PDF。在签署文档时,签名适用于当前迭代。您可以设置特定权限,如仅限填写表格,以防止签名因未来的编辑而失效。

如何检索以前的 PDF 版本?

IronPDF 提供了 GetRevision 方法来检索 PDF 文档的以前版本。您还可以使用 RevisionCount 属性来确定文档历史中存在多少修订版本。

保存新修订时签名会发生什么变化?

在签署文档后使用 IronPDF 的 SaveAsRevision 方法时,签名对该特定修订版仍然有效。不过,任何超出允许权限的编辑(如填写表格)都将导致签名无效,从而确保文档的完整性。

修订历史是否在所有 PDF 查看器中都可见?

虽然 IronPDF 保存了与 Git 提交类似的完整修订历史,但并非所有 PDF 浏览器都能显示这些信息。Chrome 等基本查看器只能显示当前版本,而 Adobe Acrobat 等高级查看器则能显示完整的修订历史。

增量保存如何提高 PDF 性能?

IronPDF 的增量保存功能只保存更改而不是重写整个文档,从而提高了导出性能。在不需要修订跟踪时,您可以将 TrackChanges 设置为 false 来优化性能,但增量保存必须启用此功能。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 17,012,929 | 版本: 2025.12 刚刚发布