数字签名是用于验证文件真实性的可靠方案。数字签名通常用于实现电子签名。在本文中,您将学习如何使用 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 Pages 或 Not
在以下示例中,我使用了几乎所有上述属性。此示例使用 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 文档进行签名。