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.調(diào)用 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é),因此有時可能會對文檔的外觀產(chǎn)生影響,而不可見簽名則能保持文檔的外觀整潔。在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ù)字簽名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現(xiàn)dnspod自動更新dns解析的方法
這篇文章主要介紹了python實現(xiàn)的dnspod自動更新dns解析的方法,需要的朋友可以參考下2014-02-02詳解python中Numpy的屬性與創(chuàng)建矩陣
這篇文章給大家分享了關于python中Numpy的屬性與創(chuàng)建矩陣的相關知識點內(nèi)容,有興趣的朋友們可以學習參考下。2018-09-09