E-Sign Documents with Python

电子文档签名简介

电子签名彻底改变了企业和个人处理文档工作流程的方式。不再需要打印、签署和扫描 - 现在您可以只需几行 Python 代码即可数字签署文档!

本全面指南将指导您使用 GroupDocs.Signature for Python via .NET 为 PDF、Word 和 Excel 文档创建电子签名。无论您是构建文档管理系统、自动化业务流程,还是创建安全签名平台,本教程都能满足您的需求。

了解电子签名及其好处

电子签名不仅仅是手写签名的数字表示。它是一种安全的方法,用于验证文档的真实性和签署者的身份。主要好处包括:

  • 法律有效性:在世界上大多数国家得到认可
  • 安全性:加密保护,防止篡改
  • 效率:可以从任何地方立即在线签署文档
  • 可追溯性:详细的签署过程审计日志
  • 经济性:消除纸张、打印和邮寄成本
  • 集成性:可以轻松集成到现有的文档工作流程中

🛠️ 设置您的 Python 环境

在开始签署文档之前,您需要正确设置 Python 环境。按照以下简单步骤准备:

  1. 安装 GroupDocs.Signature for Python via .NET
pip install groupdocs-signature-net
  1. 导入所需模块
# 导入核心 GroupDocs.Signature 库
import groupdocs.signature as gs

# 导入用于配置签名设置的选项
import groupdocs.signature.options as gso

# 导入外观设置以自定义签名的外观
import groupdocs.signature.options.appearances as appearances

📝 如何使用 Python 电子签署 PDF 文档

PDF 是最常见的需要数字签名的文档格式之一。以下是一个完整示例,展示了如何使用完整的自定义选项为您的 PDF 文件添加专业的电子签名。

# 此函数演示如何向 PDF 文档添加数字签名
# 签名包括数字证书和视觉元素
def sign_pdf_document():
    # 定义文件路径
    sample_file_path = "sample.pdf"         # 源 PDF 文档
    certificate_pfx = "MrSmithSignature.pfx"  # 数字证书文件
    image_handwrite = "signature_handwrite.jpg"  # 可选的手写签名图像
    output_file_path = "signed.pdf"         # 保存签署文档的位置

    # 打开文档以进行签署
    with gs.Signature(sample_file_path) as signature:
        # 配置数字签名选项
        options = gso.DigitalSignOptions(certificate_pfx)

        # 设置视觉外观属性
        options.image_file_path = image_handwrite  # 添加手写签名图像
        options.left = 450                         # 页面上的 X 位置
        options.top = 150                          # 页面上的 Y 位置
        options.page_number = 1                    # 要签署的页面
        options.password = "1234567890"            # 证书密码

        # 向签名添加元数据
        options.appearance = appearances.DigitalSignatureAppearance(
            "John Smith",                          # 签署者姓名
            "Title",                               # 签署者职位
            "jonny@test.com"                       # 签署者电子邮件
        )
        options.reason = "Document Approval"       # 签署文档的原因
        options.contact = "JohnSmith"              # 联系信息
        options.location = "Office1"               # 签署地点

        # 应用签名并保存文档
        result = signature.sign(output_file_path, options)

        # 显示成功消息,分两个单独的日志条目
        print(f"\n源文档签署成功。")
        print(f"总签名应用: {len(result.succeeded)}")
        print(f"文件保存于 {output_file_path}。")

结果输出:

带有证书验证和视觉手写元素的专业 PDF 数字签名示例

向 Excel 文件添加数字签名

Excel 电子表格通常包含需要验证的重要财务数据。以下是如何使用 Python 安全签署 Excel 文件以验证其真实性并防止未经授权的更改。

# 此函数演示如何数字签署 Excel 电子表格
# 适用于财务文档、报告和其他敏感数据
def sign_excel_document():
    # 定义文件路径
    sample_file_path = "sample.xlsx"        # 源 Excel 文档
    certificate_pfx = "MrSmithSignature.pfx"  # 数字证书文件
    output_file_path = "signed.xlsx"        # 保存签署文档的位置

    # 打开 Excel 文档以进行签署
    with gs.Signature(sample_file_path) as signature:
        # 使用证书配置数字签名选项
        options = gso.DigitalSignOptions(certificate_pfx)

        # 设置 Excel 文档中的签名位置
        options.left = 450                  # 页面上的 X 位置
        options.top = 150                   # 页面上的 Y 位置
        options.page_number = 1             # 要签署的工作表(第一个工作表)
        options.password = "1234567890"     # 证书密码

        # 向签名元数据添加签署者信息
        options.appearance = appearances.DigitalSignatureAppearance(
            "John Smith",                   # 签署者姓名
            "Title",                        # 签署者职位
            "jonny@test.com"                # 签署者电子邮件
        )

        # 应用签名并保存文档
        result = signature.sign(output_file_path, options)

        # 显示成功消息,分两个单独的日志条目
        print(f"\nExcel 文档签署成功。")
        print(f"总签名应用: {len(result.succeeded)}")
        print(f"签署后的 Excel 文件保存于 {output_file_path}。")

实现条形码签名以增强文档安全性

条形码签名提供了额外的文档验证层,允许快速扫描和验证。这种方法特别适用于需要在物理环境中验证的文档。

# 此函数向文档添加可扫描的条形码签名
# 适用于库存文档、证书或跟踪文档
def add_barcode_signature():
    # 导入所需库
    import groupdocs.signature as gs
    import groupdocs.signature.domain as gsd
    import groupdocs.signature.options as gso

    # 定义文件路径
    sample_file_path = "sample.xlsx"        # 源文档
    output_file_path = "barcode_signed.xlsx"  # 保存签署文档的位置

    # 打开文档以进行签署
    with gs.Signature(sample_file_path) as signature:
        # 使用要编码的文本创建条形码签名选项
        options = gso.BarcodeSignOptions("GroupDocs.Signature")

        # 设置条形码类型 - CODE128 广泛使用且可靠
        options.encode_type = gsd.BarcodeTypes.CODE128

        # 配置条形码外观和位置
        options.left = 50                   # 页面上的 X 位置
        options.top = 150                   # 页面上的 Y 位置
        options.width = 100                 # 条形码宽度
        options.height = 50                 # 条形码高度

        # 应用签名并保存文档
        result = signature.sign(output_file_path, options)

        # 显示成功消息,分两个单独的日志条目
        print(f"\n文档签署条形码成功!")
        print(f"总签名应用: {len(result.succeeded)}")
        print(f"文件保存于 {output_file_path}。")

结果输出:

可扫描条形码签名示例,用于文档验证和验证

创建用于移动验证的 QR 码签名

QR 码适用于移动验证场景,允许任何拥有智能手机的人快速验证文档的真实性或访问与文档相关联的其他信息。

# 此函数向文档添加 QR 码签名
# 适用于移动验证和链接到在线资源
def add_qrcode_signature():
    # 导入所需库
    import groupdocs.signature as gs
    import groupdocs.signature.domain as gsd
    import groupdocs.signature.options as gso

    # 定义文件路径
    sample_file_path = "sample.pdf"        # 源文档
    output_file_path = "qrcode_signed.pdf"  # 保存签署文档的位置

    # 打开文档以进行签署
    with gs.Signature(sample_file_path) as signature:
        # 使用要编码的数据创建 QR 码选项
        # 这可以是验证 URL、文档 ID 或其他数据
        options = gso.QrCodeSignOptions("GroupDocs.Signature")

        # 设置 QR 码类型 - 标准 QR 码最广泛支持
        options.encode_type = gsd.QrCodeTypes.QR

        # 配置 QR 码外观和位置
        options.left = 50                   # 页面上的 X 位置
        options.top = 150                   # 页面上的 Y 位置
        options.width = 100                 # QR 码宽度
        options.height = 100                # QR 码高度
        options.rotation_angle = 45         # 可选:旋转 QR 码

        # 应用签名并保存文档
        result = signature.sign(output_file_path, options)

        # 显示成功消息,分两个单独的日志条目
        print(f"\n文档签署 QR 码成功!")
        print(f"总签名应用: {len(result.succeeded)}")
        print(f"文件保存于 {output_file_path}。")

结果输出:

用于移动验证和通过智能手机进行即时文档验证的 QR 码签名

电子签名的安全最佳实践

在应用程序中实现电子签名时,请考虑以下安全最佳实践:

  1. 证书管理:安全存储证书,并具有适当的访问控制
  2. 密码保护:使用强密码访问证书
  3. 时间戳:包括时间戳服务以证明文档何时签署
  4. 审计日志:维护所有签名活动的日志
  5. 验证:实施定期签名验证检查
  6. 多因素认证:在签署之前要求额外验证
  7. 合规性:确保您的实现符合行业法规(ESIGN、eIDAS 等)

📑 结论与下一步

使用 Python 和 GroupDocs.Signature 的电子签名提供:

  • 快速的文档签署和处理
  • 高安全性验证和防篡改
  • 适用于所有操作系统的跨平台兼容性
  • 支持多种文档格式(PDF、Word、Excel 等)
  • 移动友好的 QR 码验证选项
  • 流线型的文档工作流程和批准流程

今天开始通过实现安全、高效的电子签名来转变您的文档工作流程!

免费试用

准备好深入了解吗?获取 GroupDocs.Signature for Python via .NET 的免费试用:

附加资源和文档