使用 GroupDocs.Signature for .NET 实现自定义序列化的 PDF 元数据签名

介绍

在当今的数字世界中,确保文档的真实性和完整性至关重要。无论您是开发合同管理系统的开发人员,还是处理敏感信息的组织,可靠地签署文档都至关重要。本指南将指导您使用自定义序列化实现 PDF 元数据签名 适用于 .NET 的 GroupDocs.Signature—一个强大的库,旨在简化.NET应用程序中的数字签名。

本教程重点介绍如何创建和应用元数据签名的自定义序列化格式,此功能增强了数据嵌入文档时呈现方式的灵活性。通过利用 GroupDocs.Signature for .NET,您可以控制签名相关数据(例如 ID、作者、日期和其他指标)在 PDF 文件中的序列化和存储方式。

您将学到什么:

  • 如何在您的环境中设置和配置 GroupDocs.Signature for .NET
  • 使用属性定义唯一的元数据格式来实现自定义序列化
  • 使用自定义元数据签名对文档进行签名
  • 使用数字签名时优化性能的最佳实践

在深入探讨技术细节之前,请确保一切准备就绪。

先决条件

为了有效地遵循本教程,请确保满足以下先决条件:

所需的库和版本:

  • 适用于 .NET 的 GroupDocs.Signature:确保您拥有 21.5 或更高版本,该版本支持自定义序列化功能。

环境设置要求:

  • .NET 开发环境(建议使用 Visual Studio)
  • 对 C# 编程有基本的了解

知识前提:

  • 熟悉面向对象编程概念
  • 在 .NET 中使用文件路径和目录的基础知识

为 .NET 设置 GroupDocs.Signature

首先,您需要安装 GroupDocs.签名 将库添加到你的项目中。以下是使用不同包管理器的操作方法:

.NET CLI:

dotnet add package GroupDocs.Signature

包管理器:

Install-Package GroupDocs.Signature

NuGet 包管理器 UI:

搜索“GroupDocs.Signature”并直接从您的 IDE 安装最新版本。

许可证获取步骤:

  • 免费试用:从免费试用开始探索功能。
  • 临时执照:申请临时许可证,以进行不受限制的延长测试。
  • 购买:如果您需要完全访问权限以供生产使用,请考虑购买。

安装后,请在项目中初始化 GroupDocs.Signature,如下所示:

using GroupDocs.Signature;

// 使用输入文件路径初始化 Signature 类
var signature = new Signature("input.pdf");

实施指南

本节将指导您创建自定义序列化机制并将其应用于签署文档。

为元数据签名创建自定义序列化

概述:

自定义序列化允许您定义在将元数据嵌入文档时特定字段的序列化方式。这对于确保后续可能使用已签名文档的不同系统之间的数据一致性和可读性尤为有用。

逐步实施:

定义自定义数据签名类

创建一个代表您的签名数据的类,该类具有控制序列化行为的属性。

using System;
using GroupDocs.Signature.Domain.Extensions;

class DocumentSignatureData
{
    [CustomSerialization]
    public class SignatureData
    {
        // 对 SignID 字段使用自定义格式
        [Format("SignID")]
        public string ID { get; set; }

        // 作者字段的自定义格式
        [Format("SAuth")]
        public string Author { get; set; }

        // 使用特定模式自定义日期格式
        [Format("SDate", "yyyy-MM-dd")]
        public DateTime Signed { get; set; }

        // 格式化为两位小数
        [Format("SDFact", "N2")]
        public decimal DataFactor { get; set; }

        // 从序列化中排除此字段
        [SkipSerialization]
        public string Comments { get; set; }
    }
}
解释:
  • [自定义序列化]:将整个类标记为自定义序列化。
  • [格式(“字段名称”, “模式”)]):指定如何序列化特定属性,包括其键和格式模式。
  • [跳过序列化]:排除被序列化的属性。

使用元数据和自定义序列化对文档进行签名

概述:

在本节中,您将使用自定义序列化类对文档进行签名。这涉及设置元数据签名并使用 GroupDocs.Signature for .NET 应用它们。

步骤:
设置加密

实施数据加密以保护您的签名元数据。

using System.IO;
using GroupDocs.Signature.Domain;

// 创建加密对象(例如,CustomXOREncryption)
IDataEncryption encryption = new CustomXOREncryption();
配置元数据签名选项

设置签名选项,包括自定义序列化和加密。

using GroupDocs.Signature.Options;
using GroupDocs.Signature.Domain;

MetadataSignOptions options = new MetadataSignOptions()
{
    DataEncryption = encryption
};
创建自定义签名数据对象

使用特定的签名细节实例化您的自定义数据类。

documentSignatureData = new DocumentSignatureData.SignatureData
{
    ID = Guid.NewGuid().ToString(),
    Author = Environment.UserName,
    Signed = DateTime.Now,
    DataFactor = 11.22M
};
添加签名元数据

向选项中添加各种元数据字段。

using GroupDocs.Signature.Domain;

WordProcessingMetadataSignature mdSignature = new WordProcessingMetadataSignature("Signature", documentSignatureData);
WordProcessingMetadataSignature mdAuthor = new WordProcessingMetadataSignature("Author", "Mr.Scherlock Holmes");
WordProcessingMetadataSignature mdDocId = new WordProcessingMetadataSignature("DocumentId", Guid.NewGuid().ToString());

options.Add(mdSignature).Add(mdAuthor).Add(mdDocId);
签署文件

应用配置的选项来签署您的文档。

using GroupDocs.Signature;

string filePath = "YOUR_DOCUMENT_DIRECTORY";
string outputFilePath = Path.Combine("YOUR_OUTPUT_DIRECTORY", "SignedDocument.pdf");

using (Signature signature = new Signature(filePath))
{
    // 签署并保存文件
    SignResult signResult = signature.Sign(outputFilePath, options);
}

故障排除提示:

  • 确保正确指定了文件路径。
  • 验证自定义序列化所需的所有属性是否均已正确设置。
  • 检查 GroupDocs.Signature 库是否已更新以支持自定义功能。

实际应用

自定义元数据签名的能力有多种实际应用:

  1. 合同管理:使用自定义格式在文档中以标准化格式嵌入合同 ID 和签署日期。
  2. 文档版本控制:将版本号和作者详细信息直接附加到元数据中,确保可追溯性。
  3. 电子商务交易:将交易 ID 和金额安全地嵌入 PDF 发票或收据中。
  4. 法律文件:以预定义格式添加案件编号和法律术语,以便在审计期间轻松检索。

与 CRM 或 ERP 平台等其他系统的集成可以通过自动化元数据提取和处理进一步增强文档管理工作流程。

性能考虑

使用数字签名时,优化性能至关重要:

  • 异步处理:使用异步方法避免阻塞操作。
  • 资源管理:妥善管理资源,防止内存泄漏或 CPU 使用率过高。
  • 批处理:处理多个文档时,请考虑使用批处理技术来提高效率。

通过遵循这些准则并利用 GroupDocs.Signature for .NET 的功能,您可以在应用程序中有效地实现强大的元数据签名解决方案。