如何对 PDF 进行消毒

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

查克尼特·宾

清理 PDF 文件是一个非常重要的过程,具有许多好处。 主要是通过删除嵌入的脚本或元数据等潜在有害元素来增强文件安全,从而降低恶意实体利用的风险。 此外,它通过移除复杂或专有元素,增强了不同平台之间的兼容性,提高了可访问性。 通过减轻数据泄露的风险并确保文档的完整性,清洁PDF文件在文件管理实践中显著提升了整体安全性和可信度。

开始使用IronPDF

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

第一步:
green arrow pointer



清理 PDF 示例

要清理PDF的技巧是将PDF文档转换成一种图像格式,这样可以去除JavaScript代码、嵌入的对象和按钮,然后再将其转换回PDF文档。 我们提供Bitmap和SVG图像类型。 SVG与Bitmap的主要区别有:

  • 比使用位图消毒更快
  • 生成可搜索的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文件上传到方法的第二个参数。

YARA文件用于PDF文档,包含用于识别与恶意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 related to 扫描PDF示例

查克尼特·宾

软件工程师

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