How To Secure PDF Files in C

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

对于处理私人、敏感或机密PDF文档的开发者来说,PDF安全性是一个需要考虑的关键方面。 IronPDF的设计旨在通过一个操作简单且无需复杂学习的库来增强开发者的能力,实现对PDF安全性的掌控。 通过IronPDF,您可以轻松签署PDF文档以确保真实性,创建控制人们如何与您的文档交互的自定义权限,填写PDF表格等——这一切都以实用高效的方式进行。

因此,如果您正在寻找一款可以处理从PDF签名到编辑PDF表单的工具,那么IronPDF就是适合您的工具。 通过易于实施的API,即可让IronPDF在您的C#应用中迅速启动并运行。这使您能创建可读取的代码以处理PDF安全,仅需几行代码即可实现,无需复杂、难以理解的代码文件,并减轻负担。

在本教程中,我们将首先介绍IronPDF的一整套PDF安全功能。 接下来,我们将探索一些展示这些工具实际应用的代码示例。 在今天结束时,您将能够轻松使用IronPDF创建安全的PDF文档。 那么,让我们开始吧!

快速入门:使用数字签名保护您的 PDF 文件

快速上手IronPDF,通过添加数字签名来增强您的PDF安全性。 这个简单的例子展示了如何加载PDF,使用证书应用数字签名,并保存安全的文档。 通过最少的代码,您可以确保您的PDF的完整性和真实性,使其防篡改,并对敏感信息安全。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    var pdf = IronPdf.PdfDocument.FromFile("input.pdf");
    pdf.SignWithFile("certificate.pfx", "password");
    pdf.SaveAs("secured.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer

目录

确保真实性

在处理PDF时,开发者和公司常常需要确保文档的真实性。 确保PDF真实性的原因有很多,从符合法律和法规标准到长期存档,甚至到数字取证等情况。 无论出于何种原因,IronPDF都提供了无缝的方法来将数字签名应用到PDF文件并验证修订历史。

签署PDF

IronPDF通过提供简明的方法和多种根据具体需求量身定制的方法,简化了以编程方式签署PDF文档的过程。 这些方法旨在简单易用,赋予您自信来签署PDF。

  • 使用证书对PDF进行数字签名。
  • 在现有PDF上添加图形签名。
  • 将证书图像盖印在PDF上。
  • 在PDF上添加空白签名字段供浏览者签署。

在这个例子中,让我们来看看如何使用数字签名签署PDF。

:path=/static-assets/pdf/content-code-examples/how-to/signing-X509Certificate2-with-privatekey.cs
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature object
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);

pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature object
Private sig = New PdfSignature(cert)

' Sign PDF document
pdf.Sign(sig)

pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

访问操作指南以了解更多关于IronPDF的签署功能和查看其他方法的实际应用。

设置和编辑元数据

讨论PDF文档的元数据时,我们指的是有关PDF本身的重要信息,如作者、创建日期、关键词、版权信息等。 此元数据的安全性至关重要,因为它可能包含需要保护不受未授权人员利用或泄露的敏感信息。

使用IronPDF,您可以轻松编辑PDF的元数据,确保其中不包含任何敏感信息。 另一种方法可能是加密您的PDF以防止未经授权的访问; 然而,我们将在本文后面的部分深入探讨PDF加密。 除了基本的安全问题,利用PDF元数据还有许多好处。 这样做可以增强数据库的可搜索性,提高互联网的可搜索性,并激发使用和互动PDF文档的新方法。

通过设置自定义元数据,如关键词字段,您可以轻松告知读者在PDF中可以预期获得的信息,并确保其出现在相关搜索中。

:path=/static-assets/pdf/content-code-examples/how-to/metadata-set-edit.cs
using IronPdf;
using System;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>");

// Access the MetaData class and set the pre-defined metadata properties.
pdf.MetaData.Author = "Iron Software";
pdf.MetaData.CreationDate = DateTime.Today;
pdf.MetaData.Creator = "IronPDF";
pdf.MetaData.Keywords = "ironsoftware,ironpdf,pdf";
pdf.MetaData.ModifiedDate = DateTime.Now;
pdf.MetaData.Producer = "IronPDF";
pdf.MetaData.Subject = "Metadata Tutorial";
pdf.MetaData.Title = "IronPDF Metadata Tutorial";

pdf.SaveAs("pdf-with-metadata.pdf");
Imports IronPdf
Imports System

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Metadata</h1>")

' Access the MetaData class and set the pre-defined metadata properties.
pdf.MetaData.Author = "Iron Software"
pdf.MetaData.CreationDate = DateTime.Today
pdf.MetaData.Creator = "IronPDF"
pdf.MetaData.Keywords = "ironsoftware,ironpdf,pdf"
pdf.MetaData.ModifiedDate = DateTime.Now
pdf.MetaData.Producer = "IronPDF"
pdf.MetaData.Subject = "Metadata Tutorial"
pdf.MetaData.Title = "IronPDF Metadata Tutorial"

pdf.SaveAs("pdf-with-metadata.pdf")
$vbLabelText   $csharpLabel

若需更详细地说明此代码片段并探索其附加功能,请参阅我们的综合操作指南

编辑和签署修订历史

在处理PDF文件时,修订历史是一个关键特性,允许您回滚到文档的先前版本,并跟踪和管理随时间对PDF文档所做的更改。使用IronPDF,您可以轻松管理PDF修订历史,在协作环境中查看谁做了更改,以及对PDF的修订历史进行签署以确保真实性。

:path=/static-assets/pdf/content-code-examples/how-to/signing-revision.cs
using IronPdf;
using IronPdf.Rendering;

// Import PDF and enable TrackChanges
PdfDocument pdf = PdfDocument.FromFile("annual_census.pdf", TrackChanges: ChangeTrackingModes.EnableChangeTracking);
// ... various edits ...
pdf.SignWithFile("/assets/IronSignature.p12", "password", null, IronPdf.Signing.SignaturePermissions.AdditionalSignaturesAndFormFillingAllowed);

PdfDocument pdfWithRevision = pdf.SaveAsRevision();

pdfWithRevision.SaveAs("annual_census_2.pdf");
Imports IronPdf
Imports IronPdf.Rendering

' Import PDF and enable TrackChanges
Private pdf As PdfDocument = PdfDocument.FromFile("annual_census.pdf", TrackChanges:= ChangeTrackingModes.EnableChangeTracking)
' ... various edits ...
pdf.SignWithFile("/assets/IronSignature.p12", "password", Nothing, IronPdf.Signing.SignaturePermissions.AdditionalSignaturesAndFormFillingAllowed)

Dim pdfWithRevision As PdfDocument = pdf.SaveAsRevision()

pdfWithRevision.SaveAs("annual_census_2.pdf")
$vbLabelText   $csharpLabel

若需更详细地说明此代码片段并探索其附加功能,请参阅我们的综合操作指南

PDF表单管理

从申请到调查问卷,您可能会有很多理由想要处理PDF表单。 IronPDF提供了一整套PDF表单处理过程,从创建新表单到编辑PDF表单及将表单字段合并以防止进一步编辑应有尽有。 借助IronPDF,您能够轻松处理所有表单管理需求。

创建PDF表单

使用IronPDF易于学习的API,向您的PDF文档中添加自定义表单简直轻而易举。 我们的表单工具支持广泛的表单元素,包括单选按钮、复选框、文本区域、输入字段等等。 对于希望创建需要填表者签名的表单,IronPDF支持在表单中添加空白签名字段。

通过使用IronPDF创建动态表单,您可以保证表单满足您的需求,并对整个设计过程拥有完整的控制权。

:path=/static-assets/pdf/content-code-examples/how-to/create-forms-input-textarea.cs
using IronPdf;

// Input and Text Area forms HTML
string FormHtml = @"
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
";

// Instantiate Renderer
ChromePdfRenderer Renderer = new ChromePdfRenderer();
Renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("textAreaAndInputForm.pdf");
Imports IronPdf

' Input and Text Area forms HTML
Private FormHtml As String = "
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
"

' Instantiate Renderer
Private Renderer As New ChromePdfRenderer()
Renderer.RenderingOptions.CreatePdfFormsFromHtml = True

Renderer.RenderHtmlAsPdf(FormHtml).SaveAs("textAreaAndInputForm.pdf")
$vbLabelText   $csharpLabel

如果您希望了解有关使用IronPDF创建自定义PDF表单及其支持的元素的更多信息,请务必查看这份指南

填写和编辑PDF表单

借助IronPDF,您可以通过编程方式填写动态数据,自动化PDF签名过程。 无论是用户输入、连接的数据库,还是任何其他方法,IronPDF都让它变得简单。 您也可以利用它来编辑已存在的表单,以更适合您的需求。

:path=/static-assets/pdf/content-code-examples/how-to/edit-forms-input-textarea.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("textAreaAndInputForm.pdf");

// Set text input form values
pdf.Form.FindFormField("firstname").Value = "John";
pdf.Form.FindFormField("lastname").Value = "Smith";

// Set text area form values
pdf.Form.FindFormField("address").Value = "Iron Software LLC\r\n205 N. Michigan Ave.";

pdf.SaveAs("textAreaAndInputFormEdited.pdf");
Imports Microsoft.VisualBasic
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("textAreaAndInputForm.pdf")

' Set text input form values
pdf.Form.FindFormField("firstname").Value = "John"
pdf.Form.FindFormField("lastname").Value = "Smith"

' Set text area form values
pdf.Form.FindFormField("address").Value = "Iron Software LLC" & vbCrLf & "205 N. Michigan Ave."

pdf.SaveAs("textAreaAndInputFormEdited.pdf")
$vbLabelText   $csharpLabel

若需更详细地说明此代码片段并探索其附加功能,请参阅我们的综合操作指南

Icon Quote related to 填写和编辑PDF表单

我最喜欢的这种库是 IronPDF。它允许快速高效地操作 PDF 文件。它还具有许多有价值的功能,比如导出为 PDF/A 格式和数字签名 PDF 文档。

Milan Jovanovic related to 填写和编辑PDF表单

Milan Jovanovic

微软MVP

查看案例研究
Icon Quote related to 填写和编辑PDF表单

IronOCR 意味着我们每年可以节省 $40,000 的人工处理成本,同时提高生产力,并释放资源用于高影响任务。我强烈推荐它。

Brent Matzelle related to 填写和编辑PDF表单

Brent Matzelle

首席技术官,OPYN

查看案例研究
Icon Quote related to 填写和编辑PDF表单

Iron Suite 在我们的运营中起着至关重要的作用。这些工具提高了业务各方面的效率,包括创建平面图和改善库存管理。

David Jones related to 填写和编辑PDF表单

David Jones

首席软件工程师,Agorus Build

查看案例研究

文档安全性

保护您的PDF文档安全是处理私人PDF文档时的重要步骤,例如那些包含敏感或机密信息的文档。 通过实施PDF安全功能,如加密和权限设置,您可以确保只有授权人员可以访问PDF文档。

清理PDF文档

通过IronPDF的'清理器'类,清理PDF文档的过程变得简单。 该功能可清除任何隐藏数据和可能包含您不想共享的敏感或私人信息的元数据。 要清理PDF文档,IronPDF将首先将PDF文档转换为图像文件类型,然后再将其转换回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")
$vbLabelText   $csharpLabel

想了解更多关于IronPDF的清理方法? 请务必查看有关此主题的操作指南

设置PDF密码和权限

通过为您的PDF设置密码以限制访问并自定义用户交互权限,您可以确保只有授权人士可以查看您的PDF文档。

IronPDF的加密过程使用128位加密对您的PDF文档进行加密,提供了对权限的全部控制权,以决定用户是否可以编辑、打印、注释或对PDF进行其他操作。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-permissions-passwords-add-password.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Secret Information:</h1> Hello World");

// Password to edit the pdf
pdf.SecuritySettings.OwnerPassword = "123password";

// Password to open the pdf
pdf.SecuritySettings.UserPassword = "password123";

pdf.SaveAs("protected.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Secret Information:</h1> Hello World")

' Password to edit the pdf
pdf.SecuritySettings.OwnerPassword = "123password"

' Password to open the pdf
pdf.SecuritySettings.UserPassword = "password123"

pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

通过我们今天讨论的各种方法,您可以用仅仅几行代码创建安全的PDF文档,使这一过程简单明了。

若需更详细地说明此代码片段并探索其附加功能,请参阅我们的综合操作指南

结论

总而言之,IronPDF在提升PDF文档的签署和安全性方面发挥着重要作用。 通过利用其清理特性,用户可以轻松清除敏感元数据,确保仅共享关键信息。 此外,IronPDF的强大加密能力使得可以实施强密码保护和可定制的权限,赋予文档所有者控制对其PDF的访问和交互的能力。 这种安全措施的组合可以确保机密信息得到保护,同时也有利于重要文档的安全共享和签署。 只需几行代码,IronPDF就能简化创建安全PDF的过程,使其成为任何管理敏感内容人员的重要工具,并在过程中带来轻松和自信。

如果您想要提出功能请求或对IronPDF或许可有任何常见问题,请联系支持团队。 我们将非常乐意为您提供帮助。

常见问题解答

如何使用 C# 保护 PDF 文件?

要在 C# 中保护 PDF 文件,您可以利用 IronPDF 的全面安全功能,包括加密和密码保护,以保护您的 PDF 文档。

PDF 文件中的数字签名是什么?

PDF 文件中的数字签名涉及在文档中添加数字签名以验证其真实性和完整性。IronPDF 支持在 C# 中添加数字签名,以确保文档安全可信。

为什么 PDF 安全性很重要?

PDF 安全性对于保护敏感信息免遭未经授权的访问并确保文档保持未更改至关重要。使用像 IronPDF 这样的工具,您可以实施强大的安全措施,如加密和数字签名。

我可以使用 IronPDF 为 PDF 添加密码保护吗?

是的,IronPDF 允许您在 C# 中为 PDF 文件添加密码保护,确保只有授权用户可以打开和查看文档。

IronPDF 支持哪些类型的加密?

IronPDF 支持各种加密标准,包括128位和256位AES加密,以为您的 PDF 文档提供强有力的保护。

您如何验证 PDF 文档的真实性?

您可以通过使用数字签名来验证 PDF 文档的真实性,IronPDF 可以通过 C# 以编程方式添加,以确认文档的来源和完整性。

是否可以限制 PDF 文件的编辑?

是的,使用 IronPDF,您可以通过设置权限来限制 PDF 文件的编辑,防止未经授权的修改,同时允许查看或打印等其他操作。

using IronPDF在 C# 中保护 PDF 的好处是什么?

IronPDF 提供了一种易于使用的 API,用于实现高级 PDF 安全功能,如加密、密码保护和数字签名,使其成为在 C# 中工作的开发人员的理想选择。

我如何确保 PDF 文档的完整性?

添加 IronPDF 的数字签名可以确保 PDF 文档的完整性,这将验证文档自签署以来未被修改。

IronPDF 能否与现有 C# 应用程序集成以实现 PDF 安全性?

是的,IronPDF 可以无缝集成到现有的 C# 应用程序中,以提供增强的 PDF 安全功能,包括加密、密码保护和数字签名。

IronPDF 是否完全兼容新的 .NET 10 平台?这是否会影响其 PDF 安全功能?

是的,IronPDF 与 .NET 10 完全兼容,包括其安全相关功能,例如数字签名、加密和密码保护。它可在所有受支持平台上的 .NET 10 项目中开箱即用,无需任何特殊设置。

Kye Stuart
技术作家

Kye Stuart 在 Iron Software 中将编码热情与写作技能结合在一起。他在 Yoobee 学院接受软件部署教育,现在将复杂的技术概念转化为清晰的教育内容。Kye 重视终身学习,接受新的技术挑战。

工作之余,他们喜欢 PC 游戏、Twitch 上的直播,以及户外活动如园艺和带狗 Jaiya 散步。Kye 的直截了当的方法使他们成为 Iron Software 使命的关键,即为全球开发者解密技术。

准备开始了吗?
Nuget 下载 19,936,792 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。