2014-01-14 149 views
2

我在嘗試打開PDF文件以讀取其內容並將數據映射回pdf時收到錯誤。錯誤是: com.itextpdf.text.exceptions.InvalidPdfException:未知加密類型R = 6 在com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:631)Itext PDFReader讀取256位AES加密pdf

我用java 1.6 ,Itext 5.4.1和bouncycastle 1.48。該pdf是作爲版本1.7創建的,並且被加密爲256位AES。有沒有人有Java閱讀這種ecncrypted pdf的例子。

當前我的代碼讀取所有pdf以前的版本沒有任何錯誤,以前的版本是在128位加密加密。

 PdfReader reader = new PdfReader(src,"passwordtext".getBytes()); 
     PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest)); 
     AcroFields form = stamper.getAcroFields(); 

任何幫助表示讚賞。

回答

2

修訂版6包含在PDF 2.0中的「ISO 32000-2」中。由於PDF 2.0尚不是官方標準,iText不支持它。現在你可以問自己如何以及爲什麼你已經有了使用該標準的文檔?儘管Adobe沒有公開發布並且尚未發佈(因此也因此發生變化),但它已經實現了這一點,這對他們來說是一個糟糕的決定。標準發佈後iText也會支持它,但你必須等待。在此之前,使用「較低」加密算法(例如修訂版1-5),使用Adobe Acrobat重新生成該文檔。