在 C# 中使用二维码对 PDF 进行数字签名

在 C# 中使用二维码对 PDF 进行数字签名

在现代,带有 QR 码的数字签名 PDF 对于自动化数字处理系统来说变得更加安全且可快速验证。使用二维码的另一个很好的理由是它们能够包含很多有用的信息。如果您热衷于学习如何使用 C# 中的二维码对 PDF** 文件进行电子签名,那么您来对地方了。

本文将涵盖以下几点:

使用 QR 码对 PDF 进行数字签名的 C# 库

您可以 下载 DLL 或通过在 NuGet 程序包管理器控制台中运行命令(如下所示)来安装它。

Install-Package GroupDocs.Signature

在 C# 中使用二维码对 PDF 进行数字签名的步骤

安装完成后,我们开始写几行代码。

请按照下面提到的步骤和代码段进行操作:

  1. 实例化 Signature 类并将源文档的路径作为构造函数参数传递。
  2. 初始化QrCodeSignOptions类实例,设置EncodeTypeText属性。
  3. 调用Signature类的Sign方法并将输出文件的路径和QrCodeSignOptions传递给它。

您只需将以下代码示例复制并粘贴到您的 C# 文件中:

using (Signature signature = new Signature("sample.pdf"))
{
// create QRCode option with predefined QRCode text
QrCodeSignOptions options = new QrCodeSignOptions("JohnSmith")
{
// setup QRCode encoding type
EncodeType = QrCodeTypes.QR,
// set signature position
Left = 100,
Top = 100
};
signature.Sign("SampleSigned.pdf", options);
}

输出如下图所示:

二维码签名

使用 C# 中的 QR 代码对 PDF 进行电子签名 - 高级选项

PDF eSign 库在 QrCodeSignOptions 类中提供了一些额外的有用选项。您可以使用此类来指定签名对齐方式、边距、边框、字体、颜色和背景。此外,您可以使用 SignResult 类来验证新创建的签名的结果。

以下是使用高级选项创建二维码的步骤:

  1. 通过提供源文档的路径作为构造函数参数来初始化 Signature 类的新实例。 2.实例化QrCodeSignOptions类的一个实例。
  2. 设置签名的文本和编码类型。
  3. 设置签名的位置。
  4. 指定签名的对齐方式、边距、边框、字体、颜色和背景。
  5. 调用Signature 类的Sign 方法并将输出文件的路径和QrCodeSignOptions 传递给它。
  6. 您可以选择获取 SignResult 对象来分析或验证新创建的签名。

以下 C# 代码显示了如何使用高级选项对带有 QR 码的 PDF 进行签名:

using (Signature signature = new Signature("sample.pdf"))
{
// create QRCode option with predefined QRCode text
QrCodeSignOptions options = new QrCodeSignOptions("12345678")
{
// setup QRCode encoding type
EncodeType = QrCodeTypes.QR,
// set signature position
Left = 100,
Top = 100,
// set signature alignment
// when VerticalAlignment is set the Top coordinate will be ignored.
// Use Margin properties Top, Bottom to provide vertical offset
VerticalAlignment = VerticalAlignment.Top,
// when HorizontalAlignment is set the Left coordinate will be ignored.
// Use Margin properties Left, Right to provide horizontal offset
HorizontalAlignment = HorizontalAlignment.Right,
Margin = new Padding() { Top = 20, Right = 20 },
// adjust signature appearance
// setup signature border
Border = new Border()
{
Color = Color.DarkGreen,
DashStyle = GroupDocs.Signature.Domain.DashStyle.DashLongDashDot,
Transparency = 0.5,
Visible = true,
Weight = 2
},
// set text color and Font
ForeColor = Color.Red,
Font = new SignatureFont { Size = 12, FamilyName = "Comic Sans MS" },
// setup background
Background = new Background()
{
Color = Color.LimeGreen,
Transparency = 0.5,
Brush = new LinearGradientBrush(Color.LimeGreen, Color.DarkGreen)
}
};
// sign document to file and pouplate the SignResut
SignResult signResult = signature.Sign("signed.pdf", options);
Console.WriteLine("\nList of newly created signatures:");
int number = 1;
foreach (BaseSignature temp in signResult.Succeeded)
{
Console.WriteLine($"Signature #{number++}: Type: {temp.SignatureType} Id:{temp.SignatureId}, Location: {temp.Left}x{temp.Top}. Size: {temp.Width}x{temp.Height}");
}
}

您将获得如下图所示的输出:

电子签名 PDF

获得免费许可证

您可以利用 免费临时许可证 来测试 API,而不受评估限制。

结论

在本文中,我们学习了如何使用电子签名库在 C# 中使用二维码对 PDF 进行数字签名。此外,您还了解了一些在 PDF 文档中添加二维码签名的高级选项。您可以访问文档了解数字签名库的其他功能。

此外,我们建议您遵循我们的入门指南

问一个问题

您可以在我们的论坛 上让我们知道您的问题或疑问。

也可以看看