PDFBox를 PDFBox를 사용하여 .png 파일로 변환하려고합니다. 나는 어떤 의존성이 필요한지와 나에게 출발점을주기 위해 this answer을 따라 갔다. 페이지를 반복하여 BufferedImage
을 만들려고하면 NoClassDefFoundError
오류가 발생합니다. org/apache/fontbox/FontBoxFont
을 찾고 있지만 일부 광범위한 인터넷 검색을 통해 FontBoxFont
에 대한 것을 찾지 못했습니다. 이것은 별도의 항아리가 포함되어야합니까? 이 오류의 원인은 무엇입니까? 다음의 .jar 년대가 프로젝트에 포함되어 있습니다 : 여기 BufferedImage로 변환시 PDFBox 오류 : NoClassDefFoundError : org/apache/fontbox/FontBoxFont
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
그러나 분명히, 나는 그것을 발견 할 수 없었다. 고마워요. – Shaggy