数字签名是用于验证文件真实性的可靠方案。数字签名通常用于实现电子签名。在本文中,您将学习如何使用 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 类自定义以下选项。

  • 背景
  • 联系方式
  • 签署日期
  • 数字签名
  • 地点
  • 原因
  • 字体系列
  • 字体大小

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

  • 高度
  • 宽度
  • 边框样式
  • 显示在 All PagesNot
使用数字证书签署 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 的更多信息的快速链接

也可以看看