Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PDFRenderer在打开加密pdf时出错_Java_Pdfrenderer - Fatal编程技术网

Java PDFRenderer在打开加密pdf时出错

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

我试图通过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.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位加密。问题只出现在密码包含特殊字符时,如-/@$等。对于普通的字母数字密码,它不会崩溃。我没有。我试试看