gpt4 book ai didi

java - 转换为 BufferedImage 时 PDFBox 错误 : NoClassDefFoundError: org/apache/fontbox/FontBoxFont

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:09 44 4
gpt4 key购买 nike

我正在尝试使用 PDFBox 将 PDF 文档转换为 .png 文件。我关注了this answer了解需要哪些依赖项并给我一个起点。当我尝试遍历页面并创建 BufferedImage 时,我收到了一个 NoClassDefFoundError 错误。它正在寻找 org/apache/fontbox/FontBoxFont,但通过一些广泛的谷歌搜索,我没有找到关于 FontBoxFont 的信息。这是一个需要包含的单独的 jar 吗?是什么导致了这个错误?项目中包含以下 .jar:

pdfbox-2.0.2.jar
levigo-jbig2-imageio-1.6.5.jar
pdfbox-tools-2.0.2.jar
jai-imageio-core-1.3.1.jar
commons-logging-1.2.jar

这里是主要方法:

public static void main(String[] args) {

String sourceDir = "C:/Dev/Workspace/PdfToPng/Stocks.pdf";
String destinationDir = "C:/Dev/Workspace/PdfToPng/pages/";

try {
PDDocument document = PDDocument.load(new File(sourceDir));
PDFRenderer pdfRenderer = new PDFRenderer(document);
for(int page = 0; page < document.getNumberOfPages(); ++page) {
BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);
ImageIOUtil.writeImage(bim, destinationDir + (page+1) + ".png", 300);
}
document.close();
} catch(Exception e) {
System.out.println(e.getStackTrace());
}
}

错误是在 BufferedImage bim = pdfRenderer.renderImageWithDPI(page, 300, ImageType.RGB);

上引发的
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/fontbox/FontBoxFont
at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:75)
at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:123)
at org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:815)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:189)
at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
at org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:139)
at org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:94)
at PdfToPng.main(PdfToPng.java:25)
Caused by: java.lang.ClassNotFoundException: org.apache.fontbox.FontBoxFont
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 12 more

最佳答案

显然,您需要将 Apache FontBox 2.0.2 添加到您的类路径中,您可以从 mvnrepository 中获取它

关于java - 转换为 BufferedImage 时 PDFBox 错误 : NoClassDefFoundError: org/apache/fontbox/FontBoxFont,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477215/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com