使用經過認證的簽名簽署PDF/A-2a時,PDF/A被破壞。 出現的錯誤是:PDF /使用經過認證的簽名進行簽名時破壞
- 該字典不得包含'DigestLocation'鍵。
- 該字典不得包含'DigestMethod'鍵。
- 該字典不得包含密鑰'DigestValue'。
如果我使用非認證簽名簽署相同的PDF/A-2a,則不會出現Digestxxx錯誤。所以我想這個問題與認證簽名有關。
我正在使用iText版本5.4.5和閱讀發行說明,我發現版本5.5.4似乎已經解決了這個問題。 然後我改爲5.5.4版,但沒有運氣。出現相同的錯誤。 實際上,使用版本5.5.4我在簽署PDF/A時遇到兩個錯誤:
- 缺少結束文本運算符。
- 缺少開始文本操作符。
你知道嗎我怎麼知道丟失的文本操作符應該放在PDF裏面?
在此先感謝您的幫助。
更新: 我一直在調試itext,問題似乎是在版本檢測。 的PDF是1.7版本,但爲了確定是否Digestxxx領域必須writen在這種情況下進入(在PdfSignatureAppearance.java)時,返回的版本是4
if (writer.getPdfVersion().getVersion() < PdfWriter.VERSION_1_6)
壓模用PdfStamper創建。在版本參數等於「\ 0」的附加模式下創建簽名以保持與原始文檔(1.7)相同的版本。
任何想法?
我已更新到版本5.5.7,結果與使用版本5.5.4相同。再次,如果我使用非認證簽名簽署相同的PDF/A-2a,則不會出現Digestxxx錯誤。 – Egl
請分享有問題的PDF和您的關鍵代碼。 – mkl