本文介绍了java.lang.NoClassDefFoundError:org/fontbox/afm/FontMetric的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  import java.io.File;导入java.io.FileInputStream;导入java.io.IOException;导入org.pdfbox.cos.COSDocument;导入org.pdfbox.pdfparser.PDFParser;导入org.pdfbox.pdmodel.PDDocument;导入org.pdfbox.util.PDFTextStripper;导入java.lang.NoClassDefFoundError;导入java.util.Scanner;公共课ggg {公共静态void main(String args []){//PDFTextStripper pdfStripper = null;//PDDocument pdDoc = null;//COSDocument cosDoc = null;文件文件=新文件("C:\\ Users \\ firstfile.pdf");尝试 {PDFParser解析器=新的PDFParser(新的FileInputStream(文件));parser.parse();COSDocument cosDoc = parser.getDocument();PDFTextStripper pdfStripper =新的PDFTextStripper();PDDocument pdDoc =新的PDDocument(cosDoc);pdfStripper.setStartPage(1);pdfStripper.setEndPage(5);字符串parsedText = pdfStripper.getText(pdDoc);System.out.println(parsedText);} catch(IOException e){//TODO自动生成的catch块e.printStackTrace();}}}线程主"中的异常java.lang.NoClassDefFoundError:org/fontbox/afm/FontMetric在org.pdfbox.pdmodel.font.PDFont.getAFM(PDFont.java:334)在org.pdfbox.pdmodel.font.PDSimpleFont.getFontHeight(PDSimpleFont.java:104)在org.pdfbox.util.PDFStreamEngine.showString(PDFStreamEngine.java:336)在org.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:80)在org.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:452)在org.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:215)在org.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:174)在org.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:336)在org.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:259)在org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)在org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)在ggg.main(ggg.java:30) 
解决方案

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

不幸的是,该库还有其他依赖项.

您可以转到

您还能做的是设置一个Maven项目.并将此依赖项添加到您的pom.xml中.为此,您需要:

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

    mvn -B原型:生成\-DarchetypeGroupId = org.apache.maven.archetypes \-DgroupId = com.mycompany.app \-DartifactId = my-app

  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为您下载具有所有依赖项的库.

I am using pdfbox-0.7.3.jar. I know missing related class files belongs to JAR pdfbox-0.7.3 but when i attach the source file. keep showing missing .class files. i am seeking for suggestions on the below error.

    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)
解决方案

Seems that you are not using any build tool.

Unfortunately, this library has additional dependencies.

You can go to Maven Central - PDF Box and download and add all libraries mentioned in dependencies to your project.

What else you can do is to setup a maven project. And add this dependency to your pom.xml. To do this you need:

  1. Install maven
  2. Create a project using maven command line command

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

  3. Add maven PDF dependency to pom.xml file to the section <dependendencies>

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

  4. Open your generated project as a Maven project inside your IDE (in your case it is Eclipse)

  5. Refresh project in IDE and let Eclipse download library with all dependencies for you.

这篇关于java.lang.NoClassDefFoundError:org/fontbox/afm/FontMetric的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 12:06
查看更多