当我试图打开一个pdf文件来读取其内容并将数据映射回pdf时,我收到了一个错误。错误是: com.itextpdf.text.exceptions.InvalidPdfException:未知加密类型R=6在com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:631)上
我使用的是java 1.6、Itext 5.4.1和奖品城堡1.48。pdf被创建为1.7版本,加密为256位AES.有没有人在Java中有一个例子来读取这种类型的加密pdf。
目前,我的代码读取所有pdf以前的版本,没有任何错误,以前的版本是加密128位加密。
PdfReader reader = new PdfReader(src,"passwordtext".getBytes());
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields(); 任何帮助都是非常感谢的。
发布于 2014-01-15 07:15:31
第6版包含在“ISO 32000-2”中,这是PDF2.0。由于PDF2.0还不是官方标准,所以iText不支持它。现在,您可以问自己,如何以及为什么已经使用了该标准的文档?Adobe已经实现了它,尽管它还没有公开发布,而且还没有发布(因此由于更改),这对他们来说是一个错误的决定。在标准发布之后,iText也将支持它,但是您必须等待它。在此之前,使用Acrobat使用“较低”加密算法(例如修订1-5)重新生成该文档。
更新2021年:标准已经发布在2017年,所以第6版是好的。
https://stackoverflow.com/questions/21119703
复制相似问题