2016-08-11 65 views
0

我使用iText 5.5.9和示例C2_01_SignHelloWorld.javadigital signature white paper examples給出了生成PDF的數字簽名。頁面圖標上的PDF數字簽名表示簽名有效性

我得到普通的數字簽名外觀。我需要的是,與表示該示例之類的黃色問號的驗證狀態的圖標出現的數字簽名:

pdf signature with visible verification indicator

這個黃色的問號變爲紅十字會或依賴於一個綠色的勾簽名是否經過驗證。

我已經在過去兩天裏搜索了這個,我看到的唯一區別是我使用的數字證書是自簽名的,而參考PDF中使用的數字證書是由Adobe的供應商發佈的核準信託名單。但是在我購買之前,我想知道我是否錯過了某些明顯的東西。

+0

這樣的簽名會違反與標準的PAdES。告訴誰要求你執行此操作來閱讀PAdES。 –

+0

驗證狀態是隻有打開您的文件的客戶端才能最終說明的東西,對嗎?所以這是可以用某種方式添加支票或十字的地方。 –

+0

這些圖標似乎是簽名框的一部分。在其他閱讀器中,例如在mac os中預覽,只會出現黃色問號。在adobe reader dc中,它會顯示一個關於下載證書的對話框,黃色問號會變成綠色的勾號。 –

回答

0

要讓這種圖標出現,請在PdfSignatureAppearance對象中設置兩個附加屬性。

請按照iText in Action手冊第12章中的Signatures.java example,並根據此代碼段進行修改。

// appearance 
PdfSignatureAppearance appearance = stamper.getSignatureAppearance(); 
// insert the next two lines 
appearance.setAcro6Layers(false); 
appearance.setLayer4Text(PdfSignatureAppearance.questionMark); 

如果您正在使用iTextSharp工作,這些特性,所以你要做的:

appearance.Acro6Layers = false; 
appearance.Layer4Text = PdfSignatureAppearance.questionMark; 
+0

請注意,很久以前,這些支持已被棄用。您將'Acro6Layers = false'設置爲因爲您使用的圖層是Adobe Acrobat在版本6之前的技術,即古代。 ISO標準根本不知道這樣的「層次」,像PAdES這樣的現行標準甚至禁止這種頁面上的簽名有效性指標。 – mkl

+1

足夠令人震驚的是,這是印度政府機構使用非常多,包括髮送pdf收據時的所得稅。因爲這個先例,客戶堅持要這個功能。當我們向客戶展示標準和這篇文章以及ITEXT圖書館創建者Bruno Lowagie的評論時,客戶直言不諱地說:「你會這樣做,還是我應該去其他地方?」。 –

+0

ROTFL ...好的,我明白了,在這種情況下,您只需做客戶堅持的事情。如果我是你,我只能確保客戶已經被證實了有關的影響。 – mkl