2009-11-20 139 views
0

使用Acrobat 9,如果我使用自簽名證書籤署PDF並在簽名後編輯PDF,Acrobat將通知我文檔上有一個有效簽名,但該文檔也具有未簽名的更改。如果我再次對PDF簽名並查看簽名面板,它將顯示帶有有效簽名的第一個簽名修訂,指出在簽名第一個修訂後進行了更改,然後顯示帶有有效簽名的第二個簽名修訂。如何使用修訂來避免PDF中的數字簽名無效?

我想使用iTextSharp複製該行爲。在代碼中,我創建一個PDF並簽名。然後,我編輯PDF並再次簽名。當我在Acrobat中打開文檔時,它會顯示兩個修訂版,但會將第一個修訂版標記爲無效簽名,因爲文檔已更改。從我可以收集的內容來看,我認爲iTextSharp正在簽署整個文檔,而不僅僅是該文檔中的第一個修訂版本。我已經在PdfStamper和PdfSignatureAppearance構造函數中將Append參數設置爲true,但它似乎沒有任何作用。

由於我可以使用Acrobat獲得所需的結果,我假設我只是沒有正確使用iTextSharp。任何人都可以對此有所瞭解嗎?

回答

1

您必須更新現有的PDF,而不是完全重寫它。將以下屬性設置爲true以啓用更新。

PdfReader reader; 
... 
reader.Appendable = true; 
0

Adob​​e用圖層做這件事我想。 PDF的每個版本都可能放置在不同的圖層中,然後進行簽名。如果iText支持圖層,你可以用類似的方法來完成。

相關問題