如何在C#中清理PDF | IronPDF

如何使用 IronPDF 在 C# 中对 PDF 进行消毒。

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

<!--说明:说明代码概念的图表或截图 -->

IronPDF 通过将 PDF 转换为图像并返回,移除嵌入的脚本、JavaScript 和元数据,对 PDF 进行消毒处理。 这一过程可增强安全性、提高跨平台兼容性并防止恶意攻击。 无论您是在处理需要数字签名的敏感文档,还是需要确保文档的完整性以符合 PDF/A 标准的长期存档,消毒都是至关重要的安全步骤。

快速入门:使用 IronPDF 进行 PDF 净化。

使用 IronPDF 的 Cleaner 类增强 PDF 文档的安全性。 本快速入门指南演示了如何使用 C# .NET 以最少的代码清理 PDF。 利用 ScanPdf 方法,您可以删除嵌入式脚本和元数据等漏洞,确保 PDF 的完整性和安全性。 按照代码片段清理您的 PDF,防范潜在威胁。

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

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

    PM > Install-Package IronPdf

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

    IronPdf.Cleaner.SanitizeWithSvg(PdfDocument.FromFile("input.pdf")).SaveAs("sanitized.pdf");
  3. 部署到您的生产环境中进行测试

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


如何对 PDF 进行消毒? --> <!--说明:显示代码执行输出或结果的截图 --> PDF sanitization 的工作原理是将 PDF 文档转换为图像格式,去除 JavaScript 代码、嵌入式对象和按钮,然后将其转换回 PDF 文档。 我们提供位图和 SVG 图像类型。这种方法在处理来自不受信任来源的 PDF 或为在 Azure 或 [AWS Lambda](https://ironpdf.com/get-started/aws/) 等云平台上进行安全部署而准备文档时特别有用。 SVG 与 Bitmap 的主要区别在于 - 比使用位图进行消毒更快 - 可搜索 PDF 格式的结果 - 布局可能不一致 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/sanitize-pdf-sanitize-pdf.cs ``` 在选择位图和 SVG 净化时,请考虑您的具体要求。 SVG 净化可保持文本的可搜索性,因此非常适合需要在净化后保持可搜索性的文档。 在使用 [ PDF 中提取的文本](https://ironpdf.com/how-to/extract-text-and-images/)或实施 [ PDF/UA](https://ironpdf.com/how-to/pdfua/) 等 PDF 辅助功能时,这一点尤为重要。

如何自定义消毒选项? 除了对 PDF 进行消毒外,IronPDF 还允许您在对 PDF 进行消毒的同时对 `ChromeRenderOptions` 进行消毒,从而可以修改页边距、纸张大小和纸张方向等参数。 当您需要在不同的文档类型中保持格式一致,或者为[特定的打印要求](https://ironpdf.com/how-to/print-pdf/)准备 PDF 文件时,这种灵活性尤为宝贵。 `SanitizeWithBitmap` 和 `SanitizeWithSvg` 均可接收第二个可选参数,即 `ChromeRenderOptions` 对象。 这里是一个简短示例,展示如何将 PDF 的目标下边距设置为50像素,通过将 `MarginBottom` 属性设置为 50 像素。 欲了解完整的可用选项列表,请参考 [这里](https://ironpdf.com/how-to/rendering-options/)。 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/santize-pdf-sanitize-chrome-render-options.cs ``` 这些呈现选项可让您对消毒输出进行细粒度控制,类似于 [ 将 HTML 转换为 PDF](https://ironpdf.com/how-to/html-string-to-pdf/) 时的选项。 您可以在消毒过程中调整纸张大小、方向、页边距,甚至添加[自定义页眉和页脚](https://ironpdf.com/how-to/headers-and-footers/)。

如何扫描 PDF 以查找漏洞? <!--说明:说明代码概念的图表或截图 --> 使用 `Cleaner` 类的 `ScanPdf` 方法检查 PDF 是否有潜在漏洞。 此方法使用默认 YARA 文件进行检查。不过,您也可以将符合要求的自定义 YARA 文件上传到该方法的第二个参数。 这种扫描功能对于维护文档安全至关重要,尤其是在处理可能包含[嵌入式附件](https://ironpdf.com/how-to/add-remove-attachments/)或[表单字段](https://ironpdf.com/how-to/edit-forms/)的 PDF 文件时。 用于 PDF 文档的 YARA 文件包含用于识别与恶意 PDF 文件相关的特征的规则或模式。 这些规则帮助安全分析师自动检测潜在威胁并采取适当行动来降低风险。 YARA 在检测以下方面尤为有效: - 嵌入式 JavaScript 漏洞利用 - 可疑的表单操作 - 隐藏的恶意内容 - 已知的漏洞模式 - 未经授权的嵌入文件或数据流 ```csharp :path=/static-assets/pdf/content-code-examples/how-to/sanitize-pdf-scan-pdf.cs ``` ### 使用自定义 YARA 规则 您可以提供定制的 YARA 规则,以便根据您的具体要求增强安全扫描: ```csharp :path=/static-assets/pdf/content-code-examples/how-to/sanitize-pdf-custom-yara.cs ``` ## PDF 净化的最佳实践 在应用程序中实施 PDF 净化时,请考虑以下最佳实践: 1.**处理前始终进行扫描**:对所有传入的 PDF 文件进行漏洞扫描,尤其是来自外部资源或用户上传的文件。 2.**选择正确的消毒方法**:当文本可搜索性非常重要时,请使用 `SVG` 净化; 在处理高度敏感的文档时,使用 `bitmap` 净化以获得最大的安全性。 3.**保存原始文件**:保留原始 PDF 文件的副本,然后再进行消毒处理,以用于审计跟踪或恢复目的。 4.**实施日志记录**:跟踪所有消毒操作,以满足安全审计和合规性要求。 5.**定期更新**:保持更新您的 YARA 规则,以检测最新的基于 PDF 的威胁和漏洞。 PDF 净化只是 PDF 综合安全的一个方面。 关于其他安全措施,请探讨[设置 PDF 密码和权限](https://ironpdf.com/how-to/pdf-permissions-passwords/)或实施[数字签名](https://ironpdf.com/how-to/signing/),以确保文档的真实性和完整性。 准备好看看您还能做些什么吗? 查看我们的教程页面:[签名和保护PDFs](https://ironpdf.com/tutorials/csharp-pdf-security-complete-tutorial/)

常见问题解答

什么是 PDF 净化,为什么它很重要?

PDF 净化是从 PDF 文档中删除潜在恶意内容的过程,包括嵌入式脚本、JavaScript 和元数据。IronPDF 通过将 PDF 转换为图像再返回来实现这一目的,在保持文档内容的同时有效消除安全漏洞。这对于防止恶意攻击和确保文档完整性至关重要,尤其是在处理敏感文档或来自不可信来源的 PDF 时。

PDF 净化过程是如何进行的?

IronPDF 的净化流程通过将 PDF 文档转换为图像格式(Bitmap 或 SVG),从而去除 JavaScript 代码、嵌入式对象和按钮。然后再将图像转换回干净的 PDF 文档。这种方法可确保完全去除潜在的有害元素,同时保留原始文档的视觉内容。

位图和 SVG 净化方法的区别是什么?

IronPDF 提供两种优势明显的消毒方法。SVG sanitization 比位图 sanitization 更快,而且能生成可搜索的 PDF,是需要保持文本可搜索性的理想选择。不过,SVG 净化可能会导致某些布局不一致。位图消毒可提供更一致的视觉输出,但无法保持文本的可搜索性。请根据您对可搜索性和布局一致性的具体要求进行选择。

如何使用 C# 对 PDF 进行快速消毒?

有了 IronPDF,只需一行代码,您就可以使用 Cleaner 类对 PDF 进行消毒。只需使用`IronPdf.Cleaner.SanitizeWithSvg(PdfDocument.FromFile("input.pdf")).SaveAs("sanitized.pdf");` 该命令加载您的 PDF,执行基于 SVG 的净化以移除脚本和元数据,并保存净化后的版本。

我可以定制消毒流程吗?

是的,IronPDF 允许您使用 ChromeRenderOptions 自定义消毒过程。这使您能够在消毒过程中修改页边距、纸张大小和纸张方向等参数。当您需要在不同的文档类型中保持格式一致或确保满足特定的排版要求时,这种灵活性尤其有用。

何时应使用 PDF 净化?

在处理来自不受信任来源的 PDF、为 Azure 或 AWS Lambda 等平台上的安全云部署准备文档、处理需要数字签名的敏感文档、确保 PDF/A 合规性的长期存档或实施 PDF/UA 等 PDF 可访问性功能时,建议使用 IronPDF 进行 PDF 净化。对于文档完整性和安全性至关重要的任何场景来说,这都是必不可少的安全步骤。

Curtis Chau
技术作家

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

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

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