Python實(shí)現(xiàn)在PDF中添加數(shù)字簽名
前言
在數(shù)字化時(shí)代,文件的安全性和可信度變得尤為重要。無(wú)論是商業(yè)文件、法律文件還是個(gè)人文件,都可能需要證明其來(lái)源的真實(shí)性和完整性。PDF數(shù)字簽名就是解決這些問(wèn)題的關(guān)鍵工具。PDF數(shù)字簽名不僅能夠確保文件的安全性,還能提高工作效率,減少紙質(zhì)文件處理,從而為企業(yè)和個(gè)人帶來(lái)巨大的便利和保障。本文將提供以下兩示例來(lái)介紹如何使用 Python 為PDF文檔添加數(shù)字簽名:
安裝所需Python 庫(kù)
Spire.PDF for Python 庫(kù)現(xiàn)已支持在PDF數(shù)字簽名,可以通過(guò)以下以下 pip 命令安裝該庫(kù):
pip install Spire.PDF
更新庫(kù)可以使用:
pip install --upgrade Spire.PDF
Python 在PDF中添加可見(jiàn)簽名
使用Spire.PDF for Python庫(kù)在PDF文檔中添加包含圖片和簽名細(xì)節(jié)信息的數(shù)字簽名的主要步驟如下:
1.加載PDF文檔。
2.創(chuàng)建 PdfOrdinarySignatureMaker 對(duì)象,并傳入PDF文檔, pfx 證書(shū)和證書(shū)密碼作為參數(shù)。
3.使用 PdfOrdinarySignatureMaker 類(lèi)的屬性設(shè)置簽名細(xì)節(jié),如簽名者姓名、聯(lián)系方式、地點(diǎn)和簽名原因。
4.為簽名創(chuàng)建一個(gè) PdfSignatureAppearance 實(shí)例,然后自定義簽名標(biāo)簽并設(shè)置簽名圖像。
5.使用 PdfDocument.Pages[] 屬性獲取PDF文檔中的特定頁(yè)面。
6.調(diào)用 PdfOrdinarySignatureMaker.MakeSignature(sigFieldName: str, page: PdfPageBase,x: float,y: float,width: float,height: float,signatureAppearance: IPdfSignatureAppearance) 方法將數(shù)字簽名添加到頁(yè)面的特定位置。
7.保存簽名后的PDF文檔。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
# 加載PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("考核.pdf")
# 創(chuàng)建PdfOrdinarySignatureMaker對(duì)象
signatureMaker = PdfOrdinarySignatureMaker(pdf, "gary.pfx", "e-iceblue")
# 設(shè)置簽名屬性
signature = signatureMaker.Signature
signature.Name = "Gary"
signature.ContactInfo = "+86 12345678"
signature.Location = "China"
signature.Reason = "Document creator"
# 自定義可見(jiàn)簽名標(biāo)簽
appearance = PdfSignatureAppearance(signature)
appearance.NameLabel = "Signer: "
appearance.ContactInfoLabel = "Phone: "
appearance.LocationLabel = "Location: "
appearance.ReasonLabel = "Reason: "
# 設(shè)置簽名圖片
appearance.SignatureImage = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\簽名.jpg")
appearance.SignImageLayout = SignImageLayout.Stretch
# 將顯示模式設(shè)置為同時(shí)顯示圖片和簽名信息
appearance.GraphicMode = GraphicMode.SignImageAndSignDetail
# 獲取PDF文檔第一頁(yè)
page = pdf.Pages[0]
# 將簽名添加到頁(yè)面的指定位置
signatureMaker.MakeSignature("Gary簽名", page, 150.0, 720.0, 260.0, 100.0, appearance)
# 保存PDF文檔
pdf.SaveToFile("PDF可見(jiàn)簽名.pdf")
pdf.Close()

Python 在PDF中添加不可見(jiàn)簽名
可見(jiàn)數(shù)字簽名會(huì)在文檔頁(yè)面上顯示簽名圖片或簽名細(xì)節(jié),因此有時(shí)可能會(huì)對(duì)文檔的外觀(guān)產(chǎn)生影響,而不可見(jiàn)簽名則能保持文檔的外觀(guān)整潔。在PDF中添加不可見(jiàn)簽名的步驟相對(duì)簡(jiǎn)單一些,具體如下:
1.加載PDF文檔。
2.創(chuàng)建 PdfOrdinarySignatureMaker 對(duì)象,并傳入PDF文檔, pfx 證書(shū)和證書(shū)密碼作為參數(shù)。
3.使用 PdfOrdinarySignatureMaker.MakeSignature(sigFieldName: str) 方法為PDF文檔添加不可見(jiàn)的數(shù)字簽名。
4.保存簽名后的PDF文檔。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
# 加載PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("考核.pdf")
# 創(chuàng)建PdfOrdinarySignatureMaker對(duì)象
signatureMaker = PdfOrdinarySignatureMaker(pdf, "gary.pfx", "e-iceblue")
# 在文檔中添加不可見(jiàn)簽名
signatureMaker.MakeSignature("Gary簽名")
# 保存文檔
pdf.SaveToFile("PDF簽名.pdf")
pdf.Close()

到此這篇關(guān)于Python實(shí)現(xiàn)在PDF中添加數(shù)字簽名的文章就介紹到這了,更多相關(guān)Python PDF添加數(shù)字簽名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)修改阿里云DNS域名解析
當(dāng)公網(wǎng)IP是浮動(dòng)的時(shí)候,用一個(gè)域名去實(shí)時(shí)解析,才不會(huì)那么糟糕,本文將介紹如何使用python修改阿里云dns域名解析,感興趣的小伙伴可以了解一下2024-11-11
使用Python高效解決攜程中文點(diǎn)選驗(yàn)證碼識(shí)別并自動(dòng)登陸的方法
這兩天有一個(gè)業(yè)務(wù)需求,需要登陸不同的攜程賬號(hào)獲取訂單信息,但是由于攜程有驗(yàn)證碼檢測(cè)機(jī)制,而且是個(gè)中文驗(yàn)證碼比較難識(shí)別,所以本文試著給大家介紹了如何使用Python高效解決攜程中文點(diǎn)選驗(yàn)證碼識(shí)別并自動(dòng)登陸的方法,需要的朋友可以參考下2026-03-03
Python Diagrams庫(kù)以代碼形式生成云系統(tǒng)架構(gòu)圖實(shí)例詳解
這篇文章主要介紹了Python Diagrams庫(kù)以代碼形式生成云系統(tǒng)架構(gòu)圖實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Python中性能分析利器pyinstrument詳細(xì)講解
大家好,本篇文章主要講的是Python中性能分析利器pyinstrument詳細(xì)講解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-02-02
利用pandas將numpy數(shù)組導(dǎo)出生成excel的實(shí)例
今天小編就為大家分享一篇利用pandas將numpy數(shù)組導(dǎo)出生成excel的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
基于python實(shí)現(xiàn)獲取網(wǎng)頁(yè)圖片過(guò)程解析
這篇文章主要介紹了基于python實(shí)現(xiàn)獲取網(wǎng)頁(yè)圖片過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

