2016-09-13 2 views
4

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 

답변

4

에 발생합니다 분명히 당신은 아파치를 추가해야 FontBox 2.0.2을 클래스 패스에 넣으면 here

에서 가져올 수 있습니다.
+0

그러나 분명히, 나는 그것을 발견 할 수 없었다. 고마워요. – Shaggy

관련 문제