數字簽名是驗證文件真實性的可靠方案。數字簽名通常用於實現電子簽名。在本文中,您將學習如何使用 C# 使用數字證書對 PDF 和 Word 文檔進行電子簽名。

用於數字簽名和證書的 .NET API

為了使用數字證書籤署文檔,我將在本文的 C# 示例中使用 GroupDocs.Signature for .NET API。除了簽署 PDF 文檔外,此 API 還支持文字處理文檔和電子表格格式的數字簽名。

下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API。

PM> Install-Package GroupDocs.Signature

在 C# 中使用數字證書籤署 PDF

設置好環境後,幾行代碼就可以成功簽署文檔了。按照以下步驟使用 C# 使用可用的數字證書對文檔進行簽名。

  • 使用要簽名的文檔初始化 Signature 對象。
  • 使用證書文件初始化 DigitalSignOptions 對象。
  • 設置所需的簽名選項,例如密碼和位置。
  • 調用Sign方法用數字證書對文檔進行簽名。

以下代碼示例使用 C# 中的證書對 PDF 文檔進行簽名。

// 在 C# 中使用數字證書籤署 PDF
using (Signature signature = new Signature("document.pdf"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx");
    {
        ImageFilePath = "sampleImage.jpg", // Optional - Set image file path
        Left = 50,                    // Set signature position
        Top = 50,
        Password = "GroupDocs"       // Set Password
    };
    signature.Sign("signedDocument.pdf", options);
}

在 C# 中使用自定義外觀使用數字簽名進行簽名

可以自定義數字簽名以具有不同的表示形式。對於個性化外觀,可以使用 PdfDigitalSignatureAppearance 類自定義以下選項。

  • 背景
  • 聯繫方式
  • 簽署日期
  • 數字簽名
  • 地點
  • 原因
  • 字體系列
  • 字體大小

此外,您可以更改以下屬性:

  • 高度
  • 寬度
  • 邊框樣式
  • 是否在所有頁面上顯示
使用數字證書籤署 PDF

在 C# 中使用 GroupDocs.Signature for .NET 簽署帶有數字證書的 PDF 文檔

在以下示例中,我幾乎使用了上述所有屬性。此示例使用 C# 自定義 PDF 文檔中數字簽名的外觀。

// 在具有自定義外觀和設置的 C# 中使用數字證書籤署 PDF
using (Signature signature = new Signature("document.pdf"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
    {
        Password = "GroupDocs",
        // 數字證書詳細信息
        Reason = "Approved",
        Location = "New York",

        // 自定義 PDF 簽名外觀
        Appearance = new PdfDigitalSignatureAppearance()
        {
            // 不顯示聯繫方式
            ContactInfoLabel = string.Empty,
            // 簡化原因標籤
            ReasonLabel = "?",
            // 更改位置標籤
            LocationLabel = "From",
            DigitalSignedLabel = "By",
            DateSignedAtLabel = "On",
            Background = Color.Red
        },
        AllPages = true,
        Width = 160,
        Height = 80,
        // 設置簽名邊框
        Border = new Border()
        {
            Visible = true,
            Color = Color.Red,
            DashStyle = DashStyle.DashDot,
            Weight = 2
        }
    };
    SignResult signResult = signature.Sign("signedDocument.pdf", options);
}

在 C# 中使用數字證書對 Word 文檔進行簽名

同樣,您可以使用證書籤署 Word 文檔。當您開始初始化 Signature 對象時,只需提供正確的文檔即可。

  • 使用要簽名的 Word 文檔初始化 Signature 對象。
  • 使用證書文件初始化 DigitalSignOptions 對象。
  • 設置簽名選項,例如密碼和位置。
  • 使用 Sign 方法使用數字證書對文檔進行簽名。

該示例使用 C# 中的證書對 Word 文檔進行簽名。

// 在 C# 中使用數字證書對 Word 文檔進行簽名
using (Signature signature = new Signature("document.docx"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx");
    {
        ImageFilePath = "sampleImage.jpg", // Optional - Set image file path
        Left = 50,                    // Set signature position
        Top = 50,
        Password = "GroupDocs"       // Set Password
    };
    signature.Sign("signedDocument.docx", options);
}

結論

在本文中,您學習了使用 C# 使用數字證書對 PDF 和 Word 文檔進行電子簽名。此外,您可以輕鬆自定義簽名的外觀。現在,您可以嘗試構建自己的 .NET 應用程序,以使用在 C# 中具有自定義外觀的數字證書對 PDF 和 Word 文檔進行簽名。

有關 Signature API 的更多信息的快速鏈接

也可以看看