【问题标题】:PDF reader not workingPDF阅读器不工作
【发布时间】:2018-06-16 21:39:41
【问题描述】:
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.io.Writer;
    import java.nio.file.Files;

    import com.itextpdf.text.pdf.PdfReader;
    import com.itextpdf.text.pdf.parser.PdfReaderContentParser;
    import com.itextpdf.text.pdf.parser.SimpleTextExtractionStrategy;
    import com.itextpdf.text.pdf.parser.TextExtractionStrategy;
`    
public class Test{


    public static void main(String []args) throws IOException
    {

        String  pdf= "c:\\sample.pdf";

         PdfReader reader = new PdfReader(pdf);

    }


}

它不工作 就像我应该运行 Windows 需要帮助,请帮助我尝试了很多东西,但仍然收到相同的消息

这是错误信息

这是我尝试你的代码时得到的输出

文件存在:真

Exception in thread "main" java.lang.NoClassDefFoundError: 
org/bouncycastle/asn1/ASN1Encodable
at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:148)
at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:1024)
at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1430)
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:732)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:181)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:219)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:207)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197)
at pdfconverter.Test.main(Test.java:37)
Caused by: java.lang.ClassNotFoundException: 
org.bouncycastle.asn1.ASN1Encodable
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 9 more

【问题讨论】:

  • 您收到什么错误信息?请使用问题下方的edit 链接并包含此信息。还要详细说明您的尝试。

标签: pdf reader


【解决方案1】:

代码对我来说看起来不错。也许有关您遇到的错误的更多信息?例如,它可能是一个类路径错误——比如找不到 itextpdf 类...

如果它有助于作为基线 - 以下代码对我有用。我删除了无关的包含,尽管将它们留在里面不会有什么坏处。

import java.io.File;
import com.itextpdf.text.pdf.PdfReader;

public class Test {

    public static void main(String[] args) {

        String  pdf= "C:\\Java-Design-Patterns.pdf";

        try {
            System.out.println("File Exists: "+new File(pdf).exists());
            PdfReader reader = new PdfReader(pdf);
            int count = reader.getNumberOfPages();
            System.out.println("PDF has "+count+" pages.");
         } catch (Exception e) {
            System.out.println("Failed to open PDF ["+pdf+"]: "+e);
            e.printStackTrace();
         }

    }
}

输出是:

File Exists: true
PDF has 183 pages.

我使用的itext jar是:itextpdf-5.5.12.jar(通过maven包含)。

我使用的pdf(由google提供:java设计模式pdf)在这里:http://enos.itcollege.ee/~jpoial/java/naited/Java-Design-Patterns.pdf 我还没读过,但第一页看起来不错;)

也就是说,itextpdf 非常棒。

【讨论】:

    【解决方案2】:
    java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable
    

    清楚地表明了问题:充气城堡不见了! (或者至少缺少所需的版本。)

    Bouncy Castle 是 iText 用于加密、解密、签名和签名验证的库,here 他们的网络表示。

    因此,将 Bouncy Castle 库添加到您的类路径中。但请注意,所需的 BC 版本取决于相关的 iText 版本。您为 itext7 版本提供的 maven 链接表明需要 BC 1.49。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      相关资源
      最近更新 更多