跳至頁尾內容
產品對比

QuestPDF 和 IronPDF 的 PDF 文件簽名功能比較(程式碼範例)

數位簽章是一種數學演算法,用來驗證簽章者的身份並確保文件的完整性。 它會建立一個與文件連結的唯一識別碼,並使用只有簽署者才知道的私人金鑰簽署。 為了驗證數位簽章文件的真實性,接收者會使用公開金鑰來解密簽章並確認其有效性。

在本文中,我們將比較如何在 C# 中使用 QuestPDF 和 IronPDF 函式庫在 PDF 文件中加入數位簽章。 這兩個函式庫都提供強大的 PDF 操作功能,包括數位簽章功能。

數位簽章為何重要?

數位簽章可確保文件內容未被竄改,並證明簽章者的身份。 相較於傳統的簽名,這提供了更高層級的安全性。 數位簽章在許多國家都具有法律約束力,常用於合約、協議和其他法律文件。

先決條件

在我們開始之前,請確定您對 C# 和 .NET Framework 有基本的瞭解。 您需要同時安裝 QuestPDFIronPDF 兩種軟體。 QuestPDF 可從 NuGet 安裝,IronPDF 則可從 IronPDF 網站或透過 NuGet Package Manager 下載。

您也需要準備好數位簽章,如果您沒有數位簽章,有許多資源可以幫助您建立新的數位簽章。

QuestPDF Sign PDF Documents vs IronPDF (Code Example):圖 1

使用 QuestPDF 與 IronPDF 在 C# 中為 PDF 文件加入數位簽章的比較。

現在讓我們仔細看看這兩個函式庫,以及它們如何處理將數位簽章套用至 PDF 文件的任務。

QuestPDF是一個開放原始碼的函式庫,它著重於使用流暢的 API 來產生 PDF 文件,並藉由其全面的佈局引擎來建立複雜的佈局。它較少針對 PDF 操作,但可與其他 PDF 簽署工具結合使用。 它還附有一個配套應用程式,可讓使用者輕鬆探索 PDF 的文件結構,並利用熱重新載入功能為您提供即時文件預覽,而無需重新編譯程式碼。

IronPDF 是一個強大的 .NET 函式庫,提供 PDF 文件產生、處理和 簽署 PDF 文件的強大功能。 它專為尋求全面且容易使用的解決方案的 .NET 開發人員所設計。 使用 IronPDF,您可以輕鬆加密 PDF 文件、新增註釋將 HTML 轉換為 PDF、擷取內容等!

QuestPDF

QuestPDF Sign PDF Documents vs IronPDF (Code Example):圖 2

QuestPDF 本身不支援數位簽章。 不過,您可以結合其他函式庫 (如 BouncyCastlePdfSharp) 來實現此功能。 使用 QuestPDF 生成文档后,您可以使用确实提供 PDF 签名工具的库对其进行签名,例如 iTextSharp ,但 QuestPDF 库本身并不处理 PDF 签名。

它提供其他基本形式的 PDF 安全性(以 PDF 加密的形式),以及進階的 PDF 創作和設計 PDF 文件的能力,因此對於那些尋找能夠處理基本 PDF 任務而無需太多花俏功能的 PDF 函式庫的人來說,它仍不失為一個可行的選擇。

IronPDF。

IronPDF 提供直接的 API,用數位憑證簽署 PDF。 以下程式碼示範如何使用 IronPDF 將 數位簽章套用至 PDF 檔案。

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

public class Program
{
    static void Main(string[] args)
    {
        // Load an existing PDF document
        PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

        // Load a certificate from a .pfx file
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PDF signature using the certificate
        var sig = new PdfSignature(cert);

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

        // Save the signed PDF document
        pdf.SaveAs("signed.pdf");
    }
}
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

public class Program
{
    static void Main(string[] args)
    {
        // Load an existing PDF document
        PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

        // Load a certificate from a .pfx file
        X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "your-password", X509KeyStorageFlags.Exportable);

        // Create a PDF signature using the certificate
        var sig = new PdfSignature(cert);

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

        // Save the signed PDF document
        pdf.SaveAs("signed.pdf");
    }
}
$vbLabelText   $csharpLabel

QuestPDF Sign PDF Documents vs IronPDF (Code Example):圖 4

本代碼示範如何使用 IronPDF 和 X.509 憑證對 PDF 文件進行數位簽章。 首先,它會將現有的 PDF (invoice.pdf) 載入 PdfDocument 物件中。 然後,它會從 .pfx 檔案 (IronSoftware.pfx) 載入證書,方法是提供密碼 (your-password) 並設定旗標 X509KeyStorageFlags.Exportable 以允許在必要時輸出證書的私密金鑰。

接下來,會使用載入的憑證建立 PdfSignature 物件。 然後將此簽章套用至 PDF 文件,有效地簽署 PDF 文件。 最後,已簽署的 PDF 會儲存為一個新檔案,名稱為 signed.pdf 。 此流程可確保 PDF 經過安全簽章,驗證其真實性與完整性。

如何使用 IronPDF 驗證簽章。

IronPDF 還提供驗證數位簽章的簡易方法。 您可以呼叫 VerifyPdfSignatures 方法來檢查文件中簽名的有效性。

using IronPdf;

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

// Verify the digital signatures in the PDF document
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
    Console.WriteLine("The digital signature is valid.");
}
else
{
    Console.WriteLine("The digital signature is invalid or missing.");
}
using IronPdf;

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

// Verify the digital signatures in the PDF document
bool isValid = pdf.VerifyPdfSignatures();
if (isValid)
{
    Console.WriteLine("The digital signature is valid.");
}
else
{
    Console.WriteLine("The digital signature is invalid or missing.");
}
$vbLabelText   $csharpLabel

如果文件中的所有簽名都有效,則此方法會返回 true ;如果任何簽名無效或遺失,則此方法會返回 false

QuestPDF 和 IronPDF 的差異摘要

易用性:與 QuestPDF 相比,IronPDF 提供了更簡單的 API 來簽署 PDF。 QuestPDF 不提供數位簽章的本機支援,需要外部函式庫 (例如 BouncyCastle) 來提供此功能。 相較之下,IronPDF 內建了簽署和驗證 PDF 的方法,讓數位簽章的實作更加直接。

憑證管理:兩個函式庫都可以處理憑證,但 IronPDF 直接透過其內建的方法(例如 SignWithFile)來處理憑證,簡化了處理過程。 它還允許您指定簽名權限,這是 QuestPDF 所不提供的。 只需幾行代碼即可使用 IronPDF 簽署 PDF 文件。

數位簽名驗證: IronPDF 提供了一種易於使用的方法(VerifyPdfSignatures)來檢查 PDF 內數位簽名的有效性,而 QuestPDF 則缺乏此功能,並依賴外部函式庫來進行簽名驗證。

授權與成本: QuestPDF 是一個開放原始碼的函式庫,可免費使用。 這樣做的代價是缺乏先進的功能,例如數位簽章支援。 IronPDF 的開發是免費的,除此之外,它的 商業授權提供了一系列的價格層級,讓您在購買之前先試用一下。

結論

總而言之,雖然 QuestPDF 擅長於創建具有複雜佈局的 PDF,但它缺乏對數位簽名的本機支援,因此需要使用 BouncyCastle 之類的外部函式庫來實現此功能。 相較之下,IronPDF 提供了一個整合的解決方案來簽署和驗證數位簽章,提供了一個更簡單、更有效率的流程。

對於需要內建 數位簽章功能的完整 PDF 解決方案的開發人員而言,IronPDF 是比較好的選擇,它擁有廣泛的 功能詳盡的說明文件等。 然而,QuestPDF 仍然是 PDF 生成的強大開源選項,但數位簽章需要額外的複雜性。 最終的決定取決於專案的需求和所需的簡易程度。

請注意QuestPDF 和 BouncyCastle 是其各自所有者的註冊商標。 本網站與 QuestPDF 或 BouncyCastle 無任何關聯、背書或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。

常見問題解答

如何使用 C# 為 PDF 新增數位簽章?

若要在 C# 中為 PDF 新增數位簽名,可以使用 IronPDF 的內建方法,透過數位憑證對文件進行簽名。該庫提供了一個簡潔易用的 API,方便使用者輕鬆地對 PDF 文件進行簽署和驗證。

使用 IronPDF 進行數位簽章有哪些好處?

IronPDF 提供全面的 API,用於在 PDF 文件中添加和驗證數位簽名,使其既用戶友好又有效率。它內建了憑證管理和簽名驗證方法,為開發人員提供無縫的使用體驗。

QuestPDF 是否原生支援數位簽章?

QuestPDF 本身並非原生支援數位簽章。要實現此功能,您需要整合 BouncyCastle 或 PdfSharp 等外部程式庫。

IronPDF 如何簡化簽章驗證流程?

IronPDF 透過提供內建方法簡化了簽名驗證,讓您可以輕鬆檢查 PDF 上的所有簽名是否有效,從而確保文件的完整性和簽名者的真實性。

我可以使用 QuestPDF 產生帶有數位簽名的 PDF 檔案嗎?

QuestPDF 雖然非常適合產生具有複雜佈局的 PDF 文件,但它本身並不支援數位簽章。您需要額外的庫才能在 QuestPDF 產生的文件中新增和驗證簽名。

與 QuestPDF 相比,IronPDF 在處理數位簽章方面有哪些優勢?

IronPDF 整合了數位簽章功能,並提供使用者友善的 API,因此是處理數位簽章的更好選擇。它無需外部庫即可輕鬆實現、管理和驗證數位簽章。

IronPDF 可以免費用於數位簽章實現嗎?

IronPDF 可免費用於開發用途,方便您測試其數位簽名功能。對於商業用途,它提供多種許可選項,以便您可以使用其全部功能。

IronPDF如何處理數位憑證的管理?

IronPDF 提供內建的數位憑證管理方法,讓文件簽章和簽章驗證變得輕鬆、方便。這簡化了確保文件完整性和簽署者身分的過程。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。

QuestPDF Logo

厭倦了昂貴的續費和過時的產品更新?

透過我們的工程遷移支援和更優惠的價格,輕鬆從QuestPDF切換到。

IronPDF Logo