Python實現(xiàn)在PDF中添加數(shù)字簽名
前言
在數(shù)字化時代,文件的安全性和可信度變得尤為重要。無論是商業(yè)文件、法律文件還是個人文件,都可能需要證明其來源的真實性和完整性。PDF數(shù)字簽名就是解決這些問題的關鍵工具。PDF數(shù)字簽名不僅能夠確保文件的安全性,還能提高工作效率,減少紙質文件處理,從而為企業(yè)和個人帶來巨大的便利和保障。本文將提供以下兩示例來介紹如何使用 Python 為PDF文檔添加數(shù)字簽名:
安裝所需Python 庫
Spire.PDF for Python 庫現(xiàn)已支持在PDF數(shù)字簽名,可以通過以下以下 pip 命令安裝該庫:
pip install Spire.PDF
更新庫可以使用:
pip install --upgrade Spire.PDF
Python 在PDF中添加可見簽名
使用Spire.PDF for Python庫在PDF文檔中添加包含圖片和簽名細節(jié)信息的數(shù)字簽名的主要步驟如下:
1.加載PDF文檔。
2.創(chuàng)建 PdfOrdinarySignatureMaker 對象,并傳入PDF文檔, pfx 證書和證書密碼作為參數(shù)。
3.使用 PdfOrdinarySignatureMaker 類的屬性設置簽名細節(jié),如簽名者姓名、聯(lián)系方式、地點和簽名原因。
4.為簽名創(chuàng)建一個 PdfSignatureAppearance 實例,然后自定義簽名標簽并設置簽名圖像。
5.使用 PdfDocument.Pages[] 屬性獲取PDF文檔中的特定頁面。
6.調用 PdfOrdinarySignatureMaker.MakeSignature(sigFieldName: str, page: PdfPageBase,x: float,y: float,width: float,height: float,signatureAppearance: IPdfSignatureAppearance) 方法將數(shù)字簽名添加到頁面的特定位置。
7.保存簽名后的PDF文檔。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
# 加載PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("考核.pdf")
# 創(chuàng)建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中添加不可見簽名
可見數(shù)字簽名會在文檔頁面上顯示簽名圖片或簽名細節(jié),因此有時可能會對文檔的外觀產生影響,而不可見簽名則能保持文檔的外觀整潔。在PDF中添加不可見簽名的步驟相對簡單一些,具體如下:
1.加載PDF文檔。
2.創(chuàng)建 PdfOrdinarySignatureMaker 對象,并傳入PDF文檔, pfx 證書和證書密碼作為參數(shù)。
3.使用 PdfOrdinarySignatureMaker.MakeSignature(sigFieldName: str) 方法為PDF文檔添加不可見的數(shù)字簽名。
4.保存簽名后的PDF文檔。
Python 代碼:
from spire.pdf.common import *
from spire.pdf import *
# 加載PDF文檔
pdf = PdfDocument()
pdf.LoadFromFile("考核.pdf")
# 創(chuàng)建PdfOrdinarySignatureMaker對象
signatureMaker = PdfOrdinarySignatureMaker(pdf, "gary.pfx", "e-iceblue")
# 在文檔中添加不可見簽名
signatureMaker.MakeSignature("Gary簽名")
# 保存文檔
pdf.SaveToFile("PDF簽名.pdf")
pdf.Close()

到此這篇關于Python實現(xiàn)在PDF中添加數(shù)字簽名的文章就介紹到這了,更多相關Python PDF添加數(shù)字簽名內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現(xiàn)dnspod自動更新dns解析的方法
這篇文章主要介紹了python實現(xiàn)的dnspod自動更新dns解析的方法,需要的朋友可以參考下2014-02-02
詳解python中Numpy的屬性與創(chuàng)建矩陣
這篇文章給大家分享了關于python中Numpy的屬性與創(chuàng)建矩陣的相關知識點內容,有興趣的朋友們可以學習參考下。2018-09-09

