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