Java PDFRenderer在打开加密pdf时出错
我试图通过PDFRender库在java程序中打开一个加密的pdf文件。编译代码时,PDFPassword类出现错误。这是我代码的一部分Java PDFRenderer在打开加密pdf时出错,java,pdfrenderer,Java,Pdfrenderer,我试图通过PDFRender库在java程序中打开一个加密的pdf文件。编译代码时,PDFPassword类出现错误。这是我代码的一部分 RandomAccessFile raf = new RandomAccessFile(new File(filename), "r"); FileChannel fc = raf.getChannel(); ByteBuffer buf = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.siz
RandomAccessFile raf = new RandomAccessFile(new File(filename), "r");
FileChannel fc = raf.getChannel();
ByteBuffer buf = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
String password = "58e72df9-0";
try{
PDFPassword pass = new PDFPassword(password);
//System.out.println(PDFPassword.nonNullPassword(pass));
PDFFile pdffile = new PDFFile(buf, pass);
我得到的错误是:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.sun.pdfview.decrypt.PDFPassword$PDFDocEncodingByteGenerator.createCharsetEncoder(PDFPassword.java:256)
at com.sun.pdfview.decrypt.PDFPassword$CharsetEncoderGenerator.generateBytes(PDFPassword.java:222)
at com.sun.pdfview.decrypt.PDFPassword.generatePossiblePasswordBytes(PDFPassword.java:167)
at com.sun.pdfview.decrypt.PDFPassword.getPasswordBytes(PDFPassword.java:111)
at com.sun.pdfview.decrypt.StandardDecrypter.<init>(StandardDecrypter.java:159)
at com.sun.pdfview.decrypt.PDFDecrypterFactory.createStandardDecrypter(PDFDecrypterFactory.java:316)
at com.sun.pdfview.decrypt.PDFDecrypterFactory.createDecryptor(PDFDecrypterFactory.java:99)
at com.sun.pdfview.PDFFile.readTrailer(PDFFile.java:1051)
at com.sun.pdfview.PDFFile.parseFile(PDFFile.java:1175)
at com.sun.pdfview.PDFFile.<init>(PDFFile.java:126)
at pdfview.pdfView.main(PdfView.java:49)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -128
at com.sun.pdfview.PDFDocCharsetEncoder.<clinit>(PDFDocCharsetEncoder.java:68)
... 11 more
我不确定您的问题,但是: 如果你使用图书馆,它有 递归调用自身的加密错误 我有一个密码问题,就是stackoverflow。我发现了这个问题,它解决了stackoverflow问题。 更改密码类,如
也许这可以解决您的问题有关详细信息,请提供PdfView.java第49行附近的代码?上面的代码片段仅在第49行附近,第49行是给定代码的最后一行。对于我自己的加密pdf文件,它适用于我。也许是你的档案?我在我的pdf文件上使用了AES 128位加密。问题只出现在密码包含特殊字符时,如-/@$等。对于普通的字母数字密码,它不会崩溃。我没有。我试试看