Itext PDFReader读取256位AES加密的pdf

时间:2014-01-14 17:15:55

标签: java aes itext

尝试打开pdf文件以读取其内容并将数据映射回pdf时,我收到错误消息。错误是:  com.itextpdf.text.exceptions.InvalidPdfException:未知加密类型R = 6     at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:631)

我使用的是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(); 

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

修订版6包含在“ISO 32000-2”中,即PDF 2.0。由于PDF 2.0尚未成为官方标准,因此iText不支持它。现在您可以问问自己,您已经拥有使用该标准的文档的原因和原因是什么? Adobe已经实现了它,即使它没有公开可用但尚未发布(因此由于更改),这对他们来说是一个糟糕的决定。标准发布后,iText也会支持它,但你必须等待它。在此之前,使用“较低”的加密算法(例如修订版1-5),使用Adobe Acrobat重新生成该文档。