我们正在使用 itext 5.5.8 解密pdf文件。源代码如下:
FileOutputStream outputstream = new FileOutputStream(outfile);
PDFReader reader = new PdfReader(new FileInputStream(infile), password.getBytes());
PDFStamper stamper = new PdfStamper(reader, outputstream);
stamper.close();
reader.close();
最后,我得到以下异常:
java.lang.NullPointerException
at com.itextpdf.text.pdf.StandardDecryption.finish(StandardDecryption.java:102)
at com.itextpdf.text.pdf.PdfEncryption.decryptByteArray(PdfEncryption.java:776)
at com.itextpdf.text.pdf.PdfReader.getStreamBytesRaw(PdfReader.java:2634)
at com.itextpdf.text.pdf.PdfReader.getStreamBytesRaw(PdfReader.java:2650)
at com.itextpdf.text.pdf.PRStream.toPdf(PRStream.java:230)
at com.itextpdf.text.pdf.PdfIndirectObject.writeTo(PdfIndirectObject.java:158)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.write(PdfWriter.java:403)
at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:381)
at com.itextpdf.text.pdf.PdfWriter.addToBody(PdfWriter.java:870)
at com.itextpdf.text.pdf.PdfStamperImp.close(PdfStamperImp.java:434)
at com.itextpdf.text.pdf.PdfStamperImp.close(PdfStamperImp.java:409)
at com.itextpdf.text.pdf.PdfStamper.close(PdfStamper.java:231)
可以使用itext版本 2.1.7.5 解密相同的pdf(PDF-1.4)文件。有了这个,我们从来没有遇到任何问题。
我错过了什么吗?这个问题能以简单的方式解决吗?