Python实现在PDF中添加数字签名
前言
在数字化时代,文件的安全性和可信度变得尤为重要。无论是商业文件、法律文件还是个人文件,都可能需要证明其来源的真实性和完整性。PDF数字签名就是解决这些问题的关键工具。PDF数字签名不仅能够确保文件的安全性,还能提高工作效率,减少纸质文件处理,从而为企业和个人带来巨大的便利和保障。本文将提供以下两示例来介绍如何使用 Python 为PDF文档添加数字签名:
安装所需Python 库
Spire.PDF for Python 库现已支持在PDF数字签名,可以通过以下以下 pip 命令安装该库:
pip install Spire.PDF
更新库可以使用:
pip install --upgrade Spire.PDF
Python 在PDF中添加可见签名
使用Spire.PDF for Python库在PDF文档中添加包含图片和签名细节信息的数字签名的主要步骤如下:
1.加载PDF文档。
2.创建 PdfOrdinarySignatureMaker 对象,并传入PDF文档, pfx 证书和证书密码作为参数。
3.使用 PdfOrdinarySignatureMaker 类的属性设置签名细节,如签名者姓名、联系方式、地点和签名原因。
4.为签名创建一个 PdfSignatureAppearance 实例,然后自定义签名标签并设置签名图像。
5.使用 PdfDocument.Pages[] 属性获取PDF文档中的特定页面。
6.调用 PdfOrdinarySignatureMaker.MakeSignature(sigFieldName: str, page: PdfPageBase,x: float,y: float,width: float,height: float,signatureAppearance: IPdfSignatureAppearance) 方法将数字签名添加到页面的特定位置。
7.保存签名后的PDF文档。
Python 代码:
from spire.pdf.common import *
from spire.pdf import *
# 加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("考核.pdf")
# 创建PdfOrdinarySignatureMaker对象
signatureMaker = PdfOrdinarySignatureMaker(pdf, "gary.pfx", "e-iceblue")
# 设置签名属性
signature = signatureMaker.Signature
signature.Name = "Gary"
signature.ContactInfo = "+86 12345678"
signature.Location = "China"
signature.Reason = "Document creator"
# 自定义可见签名标签
appearance = PdfSignatureAppearance(signature)
appearance.NameLabel = "Signer: "
appearance.ContactInfoLabel = "Phone: "
appearance.LocationLabel = "Location: "
appearance.ReasonLabel = "Reason: "
# 设置签名图片
appearance.SignatureImage = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\签名.jpg")
appearance.SignImageLayout = SignImageLayout.Stretch
# 将显示模式设置为同时显示图片和签名信息
appearance.GraphicMode = GraphicMode.SignImageAndSignDetail
# 获取PDF文档第一页
page = pdf.Pages[0]
# 将签名添加到页面的指定位置
signatureMaker.MakeSignature("Gary签名", page, 150.0, 720.0, 260.0, 100.0, appearance)
# 保存PDF文档
pdf.SaveToFile("PDF可见签名.pdf")
pdf.Close()

Python 在PDF中添加不可见签名
可见数字签名会在文档页面上显示签名图片或签名细节,因此有时可能会对文档的外观产生影响,而不可见签名则能保持文档的外观整洁。在PDF中添加不可见签名的步骤相对简单一些,具体如下:
1.加载PDF文档。
2.创建 PdfOrdinarySignatureMaker 对象,并传入PDF文档, pfx 证书和证书密码作为参数。
3.使用 PdfOrdinarySignatureMaker.MakeSignature(sigFieldName: str) 方法为PDF文档添加不可见的数字签名。
4.保存签名后的PDF文档。
Python 代码:
from spire.pdf.common import *
from spire.pdf import *
# 加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("考核.pdf")
# 创建PdfOrdinarySignatureMaker对象
signatureMaker = PdfOrdinarySignatureMaker(pdf, "gary.pfx", "e-iceblue")
# 在文档中添加不可见签名
signatureMaker.MakeSignature("Gary签名")
# 保存文档
pdf.SaveToFile("PDF签名.pdf")
pdf.Close()

到此这篇关于Python实现在PDF中添加数字签名的文章就介绍到这了,更多相关Python PDF添加数字签名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python 列表,数组,矩阵两两转换tolist()的实例
下面小编就为大家分享一篇python 列表,数组,矩阵两两转换tolist()的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-04-04
python逐像素获取栅格经纬度分别保存在两个矩阵中(代码收藏)
这篇文章主要介绍了python逐像素获取栅格经纬度分别保存在两个矩阵中的实现示例,建议收藏代码总会用到,有需要的朋友可以借鉴参考下,希望能够有所帮助2024-01-01
Python itemgetter实现数据提取与复用的实战指南
在数据处理场景中,我们经常需要从复杂结构中提取特定字段,Python标准库中的operator.itemgetter提供了一种简洁高效的方式,能一行代码完成多字段提取,下面我们就来看看它的具体使用吧2025-11-11


最新评论