电子签名就像在电子文档中输入姓名一样简单。这些越来越多地用于电子商务和监管文件中。电子签名代表签名人用来以电子方式签署文件的视觉编码形式的数据。作为 Python 开发人员,您可以在云端以编程方式以电子方式编辑已签名 PDF 文档中的签名。本文将重点介绍如何在 Python 中使用 REST API 编辑已签名 PDF 文档中的签名。
本文应涵盖以下主题:
文档签名 REST API 和 Python SDK
为了在 PDF 文档中编辑电子签名,我将使用 GroupDocs.Signature Cloud 的 Python SDK API。它使您能够通过应用文本、图章、二维码、条形码、图像和数字签名,以电子方式保护支持文件格式的文档和图像。您还可以轻松地创建、验证、删除和搜索不同类型的签名。它还为云 API 提供 .NET、Java、PHP、Android、Ruby 和 Node.js SDK 作为其文档签名家族成员。
您可以使用 pip(python 包安装程序)在控制台中使用以下命令将 GroupDocs.Signature Cloud 安装到您的 Python 项目:
pip install groupdocs_signature_cloud
在开始执行步骤和可用代码示例之前,请从 dashboard 获取您的 Client ID 和 Client Secret。在代码中添加您的 ID 和密码,如下所示:
client_id = "112f0f38-9dae-42d5-b4fc-cc84ae644972"
client_secret = "16ad3fe0bdc39c910f57d2fd48a5d618"
configuration = groupdocs_signature_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""
在 Python 中使用 REST API 编辑已签名 PDF 文档中的签名
您可以按照以下简单步骤编辑已签名 PDF 文档中的签名:
- 上传签名后的PDF文件到云端
- 使用 Python 更新签名 PDF 文档中的签名
- 下载 生成的文件
上传文件
首先,使用下面给出的代码示例将签名的 PDF 文档上传到云端:
# 接口初始化
file_api = groupdocs_signature_cloud.FileApi.from_config(configuration)
# 上传示例文件
request = groupdocs_signature_cloud.UploadFileRequest("signed.pdf", "C:\\Files\\signed.pdf", my_storage)
response = file_api.upload_file(request)
因此,上传的 PDF 文件 (signed.pdf) 将在云端仪表板的 文件部分 中可用。
使用 Python 更新已签名 PDF 文档中的签名
您可以按照下面提到的步骤以编程方式更新签名 PDF 文件中的签名。
- 创建 SignApi 实例
- 设置签名 PDF 文件的路径
- 通过提供 SearchQRCodeOptions 和 SearchSettings 来搜索二维码
- 创建 SearchSignatureRequest
- 通过调用 SignApi.search\signatures() 方法获取结果
- 定义更新选项
- 设置更新设置
- 将 UpdateOptions 分配给 UpdateSettings
- 创建更新签名请求
- 通过调用 SignApi.update\signatures() 方法获取结果
以下代码片段显示了如何使用 REST API 更新签名 PDF 文档中的二维码签名。
# 接口初始化
api = groupdocs_signature_cloud.SignApi.from_keys(client_id, client_secret)
# 签名文档路径
fileInfo = groupdocs_signature_cloud.FileInfo()
fileInfo.file_path = "signed.pdf"
# 搜索二维码
opts = groupdocs_signature_cloud.SearchQRCodeOptions()
opts.page = 1
opts.signature_type = 'QRCode'
settings = groupdocs_signature_cloud.SearchSettings()
settings.options = [opts]
settings.file_info = fileInfo
request = groupdocs_signature_cloud.SearchSignaturesRequest(settings)
response = api.search_signatures(request)
# 更新二维码
opts = groupdocs_signature_cloud.UpdateOptions()
opts.page = 1
opts.signature_type = 'QRCode'
opts.signature_id = response.signatures[0].signature_id
opts.left = 450
opts.top = 600
opts.width = 90
opts.height = 90
opts.is_signature = True
settings = groupdocs_signature_cloud.UpdateSettings()
settings.options = [opts]
settings.file_info = fileInfo
request = groupdocs_signature_cloud.UpdateSignaturesRequest(settings)
response = api.update_signatures(request)
下载签名文件
上面的代码示例将更新后的 PDF 文件保存在云端,可以使用以下代码示例下载该文件:
# 接口初始化
file_api = groupdocs_signature_cloud.FileApi.from_config(configuration)
request = groupdocs_signature_cloud.DownloadFileRequest("signed.pdf", my_storage)
response = file_api.download_file(request)
# 将下载的文件移动到您的工作目录
shutil.move(response, "C:\\Files\\")
使用 Python 搜索和替换电子签名
您可以按照以下步骤以编程方式搜索和替换签名 PDF 文档中的签名。
- 创建 SignApi 实例
- 设置签名 PDF 文件的路径
- 搜索二维码
- 定义 SearchQRCodeOptions 和 SearchSettings
- 创建 SearchSignatureRequest
- 通过调用 SignApi.search\signatures() 方法获取结果
- 删除搜索到的二维码
- 定义 DeleteOptions 和 DeleteSettings
- 创建删除签名请求
- 调用SignApi.delete\signatures()方法获取结果
- 用条形码签名
- 定义 SignBarcodeOptions
- 设置条码大小和位置
- 定义 SignSettings
- 将 SignBarcodeOptions 和 SaveOptions 分配给 SignSettings
- 创建 CreateSignaturesRequest
- 通过调用 SignApi.create\signatures() 方法获取结果
以下代码片段显示了如何使用 REST API 在已签名的 PDF 文档中搜索二维码签名并将其替换为条形码签名。请按照前面提到的步骤下载更新文件。
# 接口初始化
api = groupdocs_signature_cloud.SignApi.from_keys(client_id, client_secret)
# 二维码签名文档路径
fileInfo = groupdocs_signature_cloud.FileInfo()
fileInfo.file_path = "signed.pdf"
# 搜索二维码
opts = groupdocs_signature_cloud.SearchQRCodeOptions()
opts.page = 1
opts.signature_type = 'QRCode'
settings = groupdocs_signature_cloud.SearchSettings()
settings.options = [opts]
settings.file_info = fileInfo
request = groupdocs_signature_cloud.SearchSignaturesRequest(settings)
response = api.search_signatures(request)
# 删除二维码
opts = groupdocs_signature_cloud.DeleteOptions()
opts.page = 1
opts.signature_type = 'QRCode'
opts.signature_id = response.signatures[0].signature_id
settings = groupdocs_signature_cloud.DeleteSettings()
settings.options = [opts]
settings.file_info = fileInfo
request = groupdocs_signature_cloud.DeleteSignaturesRequest(settings)
response = api.delete_signatures(request)
# 用条形码签名
opts = groupdocs_signature_cloud.SignBarcodeOptions()
opts.signature_type = 'Barcode'
opts.text = '123456789012'
opts.barcode_type = 'Code128'
opts.code_text_alignment = 'None'
# 在页面上设置条形码签名位置
opts.left = 250
opts.top = 0
opts.width = 300
opts.height = 90
opts.location_measure_type = "Pixels"
opts.size_measure_type = "Pixels"
opts.stretch = "None"
opts.rotation_angle = 0
opts.horizontal_alignment = "None"
opts.vertical_alignment = "None"
opts.margin = groupdocs_signature_cloud.Padding()
opts.margin.all = 5
opts.margin_measure_type = "Pixels"
opts.inner_margins = groupdocs_signature_cloud.Padding()
opts.inner_margins.all = 2
opts.page = 1
settings = groupdocs_signature_cloud.SignSettings()
settings.options = [opts]
settings.save_options = groupdocs_signature_cloud.SaveOptions()
settings.save_options.output_file_path = "Output\\signedBarCode_sample.pdf"
settings.file_info = fileInfo
request = groupdocs_signature_cloud.CreateSignaturesRequest(settings)
response = api.create_signatures(request)
在线试用
请试用以下使用上述API开发的免费在线PDF签名工具。 https://products.groupdocs.app/signature/pdf
结论
在本文中,您了解了如何更新已签名 PDF 文档中的签名。您还学习了如何在云上签名的 PDF 文档中搜索和替换签名。本文还介绍了如何以编程方式将 PDF 文件上传到云端,然后从云端下载已签名的文件。您可以使用 文档 了解有关 GroupDocs.Signature Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。