从 PDF 中删除注释 使用 GroupDocs.Redaction for .NET

介绍

您是否需要快速且可靠地remove annotations from PDF文件?无论是清理法律合同、去除审阅者评论,还是为公开发布准备文档,未删除的注释都会让 PDF 显得不专业,甚至泄露敏感信息。GroupDocs.Redaction for .NET 为您提供单行 API,能够在保留原始布局、字体和图像的同时清除所有注释。在本教程中,您将学习如何设置库、加载文档、删除所有注释并保存清理后的结果——全部使用清晰的生产就绪代码。

您将学习

  • 如何在 .NET 项目中安装和授权 GroupDocs.Redaction。
  • 逐步说明如何remove annotations from PDF文件。
  • 针对大型 PDF 的性能优化技巧以及云端或本地解决方案的集成思路。

在深入代码之前,让我们确保您已准备好所有必需的内容。

快速答案

  • GroupDocs.Redaction 能否一次调用删除所有 PDF 注释? 是的——DeleteAnnotationRedaction会自动删除所有注释。
  • 支持哪些 .NET 版本? .NET Core 3.1+、.NET 5、.NET 6 及更高版本。
  • 生产环境是否需要许可证? 非试用使用必须拥有有效的 GroupDocs.Redaction 许可证。
  • 文件大小是否有限制? 该库可处理高达 2 GB 的 PDF,而无需将整个文件加载到内存中。
  • 原始布局会被保留吗? 当然——文本、图像和矢量图形在脱敏后保持完整。

什么是 remove annotations from pdf?

Remove annotations from PDF 指的是自动删除 PDF 文件中嵌入的所有评论、突出显示、注释和标记对象,仅保留原始内容的过程。此操作对于合规、归档和清洁分发工作流至关重要。它确保最终文档不包含审阅者备注,从而安全用于法律备案和公开分发。

为什么使用 GroupDocs.Redaction 进行注释删除?

GroupDocs.Redaction 支持70 多种输入和输出格式,并且能够在典型服务器硬件上在不到一秒的时间内处理数百页的 PDF。其 API 无需 Adobe Acrobat 或任何第三方 PDF 查看器即可工作,并提供内存高效流式处理,避免将整个文档加载到 RAM 中——这对大型企业文件至关重要。

前置条件

在开始之前,请确认您具备以下条件:

  • GroupDocs.Redaction for .NET – 版本 21.9 或更新。
  • 一个 .NET 开发环境(Visual Studio、Rider 或 VS Code),目标为 .NET Core 3.1+。
  • 基本的 C# 知识以及对 Windows 或 Linux 上文件系统路径的熟悉。

设置 GroupDocs.Redaction for .NET

安装方式

使用 .NET CLI:

dotnet add package GroupDocs.Redaction

Package Manager Console:

Install-Package GroupDocs.Redaction

NuGet 包管理器 UI:
搜索 “GroupDocs.Redaction”,并从中安装最新版本。

获取许可证

在生产环境中使用 GroupDocs.Redaction 必须申请许可证。您可以:

  • 免费试用: 获取临时许可证用于评估。
  • 付费许可证: 购买完整许可证以无限制使用。

获取临时许可证:

  1. 访问 GroupDocs Purchase Page。
  2. 按照屏幕上的说明请求临时许可证文件。
  3. 按照官方文档的描述在应用程序中加载许可证。

基本初始化和设置

Redactor 类是所有脱敏操作的核心入口。它表示加载到内存中的单个 PDF 文档,并提供应用脱敏规则的方法。

using GroupDocs.Redaction;
using GroupDocs.Redaction.Options;

以下是一个最小化的设置示例,创建 Redactor 实例、应用许可证,并为后续操作准备环境:

string sourceFile = "path_to_your_document.docx";
using (Redactor redactor = new Redactor(sourceFile))
{
    // Sample operation: this will be replaced with annotation removal.
}

如何删除 PDF 中的注释?

DeleteAnnotationRedaction 是内置的脱敏规则,可删除文档中的所有注释对象。使用 Redactor 加载源文件,调用此规则去除所有注释,然后保存清理后的文档——全部只需三行简洁代码。这种方法确保没有任何评论、突出显示或隐藏注释残留,同时视觉布局保持与原始文件完全一致。

步骤 1:准备文件路径

为源 PDF 和目标文件定义绝对或相对路径。使用 Path.Combine 可避免平台特定的分隔符问题。

步骤 2:加载文档

Redactor 类是 GroupDocs.Redaction 的顶层对象,表示内存中的单个 PDF 文件。实例化时会自动验证文件格式并准备内部流以实现快速处理。

string sourceFile = System.IO.Path.Combine("YOUR_DOCUMENT_DIRECTORY", "Sample.docx");
using (Redactor redactor = new Redactor(sourceFile))
{
    // Further operations will be performed here.
}

步骤 3:应用注释删除

DeleteAnnotationRedaction 是内置的脱敏规则,针对所有注释对象(评论、印章、突出显示等),无需指定单个 ID。

redactor.Apply(new DeleteAnnotationRedaction());

步骤 4:保存脱敏文档

保存时,您可以为文件名添加后缀、选择输出格式,并决定是否对 PDF 进行光栅化(注释删除不需要光栅化)。以下选项保持文件为矢量形式,以获得最佳质量。

var saveOptions = new SaveOptions { AddSuffix = true, RasterizeToPDF = false };
redactor.Save(saveOptions);

实际应用

删除注释不仅是外观上的微调;它解决了实际业务挑战:

  1. 法律文档准备 – 在签署合同前去除审阅者备注。
  2. 合规归档 – 确保归档的 PDF 仅包含最终内容,符合合规标准。
  3. 协作工作流 – 向客户或外部合作伙伴交付干净、无评论的版本。
  4. 公开披露 – 发布研究论文或报告时不包含内部审阅者备注。

性能考虑

优化性能

  • 流式处理: 使用接受 Stream 的 Redactor 构造函数,以避免临时文件。
  • 选择性加载: 对于多 GB 的 PDF,使用 Redactor.LoadPageRange 分批处理页面。
  • 避免光栅化: 除非特别需要仅图像输出,否则保持 PDF 为矢量形式。

资源使用指南

  • CPU: 在 2.5 GHz 处理器上,典型的注释删除消耗单核 CPU 的 < 5 % 。
  • 内存: 该库采用流式处理,即使是 500 页的 PDF,峰值 RAM 也保持在 150 MB 以下。

.NET 内存管理最佳实践

  • 将 Redactor 包装在 using 块中,以确保释放非托管资源。
  • 在保存操作后及时关闭流,以释放文件句柄。

常见问题及解决方案

症状可能原因解决方案
FileNotFoundException源路径不正确在创建 Redactor 前使用 Path.Exists 验证路径。
UnsupportedFormatExceptionPDF 版本不受支持确保文件为标准 PDF(1.4–1.7)。如有必要,升级 GroupDocs.Redaction。
Annotations still appear使用了自定义脱敏规则而非 DeleteAnnotationRedaction将自定义规则替换为内置的 DeleteAnnotationRedaction。

常见问答

Q: GroupDocs.Redaction 能处理大于 1 GB 的 PDF 吗?
A: 是的——流式架构可处理高达 2 GB 的文件,而无需将整个文档加载到内存中。

Q: 该库是否也会删除隐藏的元数据?
A: 不会——DeleteAnnotationRedaction 仅针对可视的注释对象。若需删除元数据,请使用 MetadataRedaction。

Q: 在具有并发请求的 Web 服务器上运行是否安全?
A: 完全安全。每个 Redactor 实例在独立请求中使用时是线程安全的,只需避免在多个线程间共享同一实例。

Q: 脱敏后我可以输出哪些格式?
A: 您可以保存为 PDF、DOCX、PPTX、HTML,以及 GroupDocs.Redaction 支持的 70 多种其他格式。

Q: 如何在云原生应用中为库授权?
A: 从嵌入资源或安全的 Azure Key Vault 加载许可证,然后在应用启动时调用 License.SetLicense(stream)。

结论

您现在拥有使用 GroupDocs.Redaction for .NET 对 remove annotations from PDF 文件进行完整、生产就绪的工作流。按照上述步骤操作,您将保持文档的清洁、合规并可随时分发——无论是本地部署还是云端。

后续步骤

  • 探索其他脱敏规则,例如 TextRedaction 或 ImageRedaction。
  • 将注释删除与文档转换相结合,创建流畅的 PDF 到 DOCX 管道。
  • 将此过程集成到 CI/CD 流水线,实现文档自动清理。

Last Updated: 2026-05-27
Tested With: GroupDocs.Redaction 21.9 for .NET
Author: GroupDocs

Resources

相关教程