如何在 C# 中保護 PDF 文件:PDF簽名、加密與權限控制

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就是您的理想選擇。 IronPDF提供易於實現的 API,讓您能夠快速在 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表單管理 建立 PDF 表單 -填寫並編輯PDF表格 保護您的PDF文件。 -對PDF文檔進行清理 -設定PDF密碼和權限

確保真實性

通常情況下,在處理 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

有關此程式碼片段的更詳細解釋以及探索其附加功能,請參閱我們的綜合操作指南

文件安全

處理包含敏感或機密資訊的私人 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文件的編輯,這樣可以防止未經授權的修改,同時允許其他操作,例如查看或打印。

使用IronPDF在C#中進行PDF安全性的好處是什麼?

IronPDF提供了一個易於使用的API,用於實施高級PDF安全功能,例如加密、密碼保護和數字簽名,使其成為在C#中工作的開發人員的理想選擇。

如何確保PDF文件的完整性?

確保PDF文件的完整性可以通過使用IronPDF添加數字簽名來完成,這樣可以驗證該文件自簽署後未被更改。

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 下載 18,135,201 | 版本: 2026.4 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 變成 PDF。