java.lang.NoClassDefFoundError:org / fontbox / afm / FontMetric

时间:2017-06-14 10:15:49

标签: java eclipse pdfbox

我正在使用pdfbox-0.7.3.jar。我知道缺少相关的类文件属于JAR pdfbox-0.7.3但是当我附加源文件时。继续显示缺少.class文件。我正在寻找有关以下错误的建议。

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import org.pdfbox.cos.COSDocument;
    import org.pdfbox.pdfparser.PDFParser;
    import org.pdfbox.pdmodel.PDDocument;
    import org.pdfbox.util.PDFTextStripper;
    import java.lang.NoClassDefFoundError;
    import java.util.Scanner;
        public class ggg{
        public static void main(String args[]) {
           // PDFTextStripper pdfStripper = null;
               // PDDocument pdDoc = null;
           // COSDocument cosDoc = null;
            File file = new File("C:\\Users\\firstfile.pdf");
            try {
                PDFParser parser = new PDFParser(new FileInputStream(file));
                parser.parse();
                COSDocument   cosDoc = parser.getDocument();
                PDFTextStripper   pdfStripper = new PDFTextStripper();
                PDDocument pdDoc = new PDDocument(cosDoc); 
                pdfStripper.setStartPage(1);
                pdfStripper.setEndPage(5);
                String parsedText = pdfStripper.getText(pdDoc);
                System.out.println(parsedText);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
        }
    }
Exception in thread "main" java.lang.NoClassDefFoundError: org/fontbox/afm/FontMetric
    at org.pdfbox.pdmodel.font.PDFont.getAFM(PDFont.java:334)
    at org.pdfbox.pdmodel.font.PDSimpleFont.getFontHeight(PDSimpleFont.java:104)
    at org.pdfbox.util.PDFStreamEngine.showString(PDFStreamEngine.java:336)
    at org.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:80)
    at org.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:452)
    at org.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:215)
    at org.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:174)
    at org.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:336)
    at org.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:259)
    at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)
    at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)
    at ggg.main(ggg.java:30)

1 个答案:

答案 0 :(得分:0)

似乎您没有使用任何构建工具。

不幸的是,这个库还有其他依赖项。

  

org.fontbox.afm.FontMetric 是一个位于fontbox-0.1.0.jar的类

您可以转到Maven Central - PDF Box并下载并将依赖项中提到的所有库添加到项目中。

enter image description here

您还可以做的是设置maven项目。并将此依赖项添加到您的pom.xml。要做到这一点,你需要:

  1. 安装maven
  2. 使用maven命令行命令创建项目

    mvn -B archetype:generate \   -DarchetypeGroupId = org.apache.maven.archetypes \   -DgroupId = com.mycompany.app \   -DartifactId = MY-应用

  3. 将maven PDF依赖项添加到pom.xml文件到<dependendencies>

    部分

    <dependency> <groupId>pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>0.7.3</version> </dependency>

  4. 在IDE中将您生成的项目作为Maven项目打开(在您的情况下是Eclipse)

  5. 在IDE中刷新项目,让Eclipse下载库包含所有依赖项。