如何对 PDF 进行消毒

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

查克尼特·宾

对 PDF 文件进行消毒是一项至关重要的工作,好处多多。首先,它通过删除潜在的有害元素(如嵌入脚本或元数据)来增强文档的安全性,从而降低被恶意实体利用的风险。此外,它还能通过删除复杂或专有元素来提高不同平台的兼容性,从而增强可访问性。通过降低数据泄漏风险和确保文档完整性,对 PDF 文件进行消毒大大提高了文档管理实践的整体安全性和可信度。


适用于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 背后的诀窍是将 PDF 文档转换为一种图像类型,去除 JavaScript 代码、嵌入式对象和按钮,然后再将其转换回 PDF 文档。我们提供位图和 SVG 两种图像类型。SVG 与位图的主要区别在于

  • 比使用位图进行消毒更快
  • 生成可搜索的 PDF

  • 排版可能不一致
:path=/static-assets/pdf/content-code-examples/how-to/sanitize-pdf-sanitize-pdf.cs
using IronPdf;

// Import PDF document
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Sanitize with Bitmap
PdfDocument sanitizeWithBitmap = Cleaner.SanitizeWithBitmap(pdf);

// Sanitize with SVG
PdfDocument sanitizeWithSvg = Cleaner.SanitizeWithSvg(pdf);

// Export PDFs
sanitizeWithBitmap.SaveAs("sanitizeWithBitmap.pdf");
sanitizeWithSvg.SaveAs("sanitizeWithSvg.pdf");
Imports IronPdf

' Import PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Sanitize with Bitmap
Private sanitizeWithBitmap As PdfDocument = Cleaner.SanitizeWithBitmap(pdf)

' Sanitize with SVG
Private sanitizeWithSvg As PdfDocument = Cleaner.SanitizeWithSvg(pdf)

' Export PDFs
sanitizeWithBitmap.SaveAs("sanitizeWithBitmap.pdf")
sanitizeWithSvg.SaveAs("sanitizeWithSvg.pdf")
VB   C#

扫描 PDF 示例

使用 Cleaner 类的 ScanPdf 方法检查 PDF 是否存在任何潜在漏洞。该方法将使用默认的 YARA 文件进行检查。不过,您也可以将符合要求的自定义 YARA 文件上传到该方法的第二个参数中。

PDF 文档的 YARA 文件包含用于识别恶意 PDF 文件相关特征的规则或模式。这些规则可帮助安全分析人员自动检测潜在威胁,并采取适当措施降低风险。

:path=/static-assets/pdf/content-code-examples/how-to/sanitize-pdf-scan-pdf.cs
using IronPdf;
using System;

// Import PDF document
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Scan PDF
CleanerScanResult result = Cleaner.ScanPdf(pdf);

// Output the result
Console.WriteLine(result.IsDetected);
Console.WriteLine(result.Risks.Count);
Imports IronPdf
Imports System

' Import PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Scan PDF
Private result As CleanerScanResult = Cleaner.ScanPdf(pdf)

' Output the result
Console.WriteLine(result.IsDetected)
Console.WriteLine(result.Risks.Count)
VB   C#

查克尼特·宾

软件工程师

Chaknith 是开发者中的福尔摩斯。他第一次意识到自己可能在软件工程方面有前途,是在他出于乐趣做代码挑战的时候。他的重点是 IronXL 和 IronBarcode,但他为能帮助客户解决每一款产品的问题而感到自豪。Chaknith 利用他从直接与客户交谈中获得的知识,帮助进一步改进产品。他的轶事反馈不仅仅局限于 Jira 票据,还支持产品开发、文档编写和市场营销,从而提升客户的整体体验。当他不在办公室时,他可能会在学习机器学习、编程或徒步旅行。