2015-05-22 28 views
0

我正在Python中創建一個應用程序,我必須對某些PDF文件進行數字簽名。Python - 在簽名的PDF中放置JPG

我設法使用此代碼簽名的文件:os.system('java -jar PortableSigner.jar -n -t /Users/pfp/Desktop/unsigned.pdf -o /Users/pfp/Desktop/signed.pdf -s /Users/pfp/Desktop/pfp.p12 -p MySecretPassword')(我在this link瞭解到這一點)

的問題是,我需要把一個小點擊JPG圖像中的PDF文件的第一頁的頂部所以客戶可以點擊它並查看PDF的簽名屬性。

我試圖尋找一些東西,但沒有找到任何真正特定於我的需求的東西。

任何人都可以指出我在正確的道路?

+0

PDF閱讀器應該有選項來顯示簽名;這還不夠嗎? –

+0

不,客戶希望有一個可點擊的按鈕,當你點擊[this](http://s16.postimg.org/om5qwpyit/img.jpg)時,就會出現。 – undisp

回答

1

如果有問題的文件已經簽名並且您想在事後添加這樣的按鈕......這是不可能的,不會使原始簽名無效。

如果你需要新的簽名,該按鈕尚未創建...根據您鏈接到PortableSigner site,這樣的主動簽名可視化,可以添加,默認情況下它位於一個額外的,新的頁面上。

圖形用戶界面被記錄爲允許將其放置在給定位置的第一個或最後一個現有頁面上。我無法找到該網站表示相同的任何文件,可以在命令行中,只有以下參數目前都記錄有:

-b <arg>    Append signature block [german|english|polish] as 
         parameter 
-c <arg>    Comment under signature block (text) 
-f     If this is set, the document is NOT finalized 
-h     Help (this page) 
-i <arg>    Image file for signature block 
-l <arg>    Contents of "Location" - field (text) 
-n     Without GUI 
-o <arg>    Outputfile (PDF) 
-ownerpwd <arg>  Owner password 
-ownerpwdfile <arg> Owner password file 
-p <arg>    Signaturepassword 
-pwdfile <arg>  Password file 
-r <arg>    Contents of "Reason" - field (text) 
-s <arg>    Signaturefile (P12 or PFX) 
-t <arg>    Inputfile (PDF) 

但可能是文件的一部分是過時的。乍一看,源代碼似乎還知道一個-e(嵌入參數:3個浮點數,以逗號分隔:垂直位置,左邊距,右邊距)和-z(第一頁)選項。

所以我想加入的選項

-z 
-e 15,3,3 
-i imagefile 

會做的伎倆。 (也許還需要-b。)

PS:有關允許或不允許更改已簽名PDF的概述, this answer

+0

好吧,這個錯誤是正確的路徑,但這裏仍然是一個問題:我使用了這個命令'os.system('java -jar PortableSigner.jar -b en -z -e 15,3,3 -i/home/username/image.jpg -n -t /Users/pfp/Desktop/unsigned.pdf -o /Users/pfp/Desktop/signed.pdf -s /Users/pfp/Desktop/pfp.p12 -p MySecretPassword') '並用按鈕簽名PDF,但最終結果如[this](http://s14.postimg.org/n05max435/imagem.jpg)。 基本上,即使沒有我點擊它,「按鈕的內容」也會寫在PDF中。 你知道我該如何解決這個問題?讓它只出現onclick? – undisp

+0

我不知道PortableSigner工具,只是簡短地瀏覽它。你可能需要稍微調整一下。因爲它是開源的,不應該被證明太困難。 – mkl

+0

好的,我會嘗試,如果我可以,我會在這裏發佈答案。再次感謝。 – undisp