问题描述
我正在使用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中.为此,您需要:
- 安装 maven
-
使用maven命令行命令创建项目
mvn -B原型:生成\-DarchetypeGroupId = org.apache.maven.archetypes \-DgroupId = com.mycompany.app \-DartifactId = my-app
-
将maven PDF依赖项添加到pom.xml文件中的
部分< dependendencies>
< dependency>< groupId> pdfbox</groupId>< artifactId> pdfbox</artifactId>< version> 0.7.3</version></dependency>
-
在IDE中以Maven项目的形式打开生成的项目(在您的情况下为Eclipse)
-
刷新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:
- Install maven
Create a project using maven command line command
mvn -B archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-app
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>
Open your generated project as a Maven project inside your IDE (in your case it is Eclipse)
Refresh project in IDE and let Eclipse download library with all dependencies for you.
这篇关于java.lang.NoClassDefFoundError:org/fontbox/afm/FontMetric的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!