使用Flying Saucer 9.0.1和itext_2.0.8

时间:2017-07-13 13:05:32

标签: java eclipse jar itext flying-saucer

我试图用飞碟9.0.1和itext 2.0.8从xhtml生成pdf。在我的代码中,我调用了在线教程中找到的itextRenderer。一切似乎写得很好,我甚至从我的类路径中删除了itext5,以避免冲突。

This is my imports: import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.DocumentException;

And here is my code so far:

private String[] xhtml2Pdf(String outPutPath) throws DocumentException, IOException{
// LETS DEPLOY FLYING SAUCER TO CONVERT XHTML TO PDF FILE
String[] trueReturns=new String[FilePaths.length];
String fileName="";
String exto="xhtml";
String extn="pdf";
String url="";
FileOutputStream fos;
String toPath="";
// NOW LETS CHECK THE FILE ARRAY
if(FilePaths!=null && FilePaths.length>0){
    // NOW LETS LOOP THROUGH THE FILES AND PROCESS INDIVIDUALLY
    for(int i=0; i<FilePaths.length; i++){
        // NOW LETS MAKE SURE INDIVIDUAL FILE IS AN XHTML
        if(FilePaths[i].toString().indexOf("xhtml")>=0){ // Yes file is xhtml
            url=FilePaths[i].toURI().toURL().toString();
            fileName=FilePaths[i].toString().substring(FilePaths[i].toString().lastIndexOf("\\")+1, FilePaths[i].toString().length()-exto.length())+extn;
            // WE START PROCESSING AND CONVERTING
            if(outPutPath==null){
                toPath=DefaultPath+fileName;
            }
            else{
                toPath=outPutPath+fileName;
            }
            // NOW LETS TRY CONVERTING
            try {
                fos=new FileOutputStream(toPath);
                // Now lets call the ItextRenderer
                ITextRenderer renderer=new ITextRenderer();
                renderer.setDocument(url);
                renderer.layout();
                // NOW LETS CREATE PDF
                renderer.createPDF(fos);
                trueReturns[i]=toPath;
                // NOW LETS CLOSE THE FILE OUTPUT
                fos.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
        } // End of file path check
    } // End of loop
}

    return trueReturns;
}

我尝试使用eclipse运行程序,得到以下error

Exception in thread "main" java.lang.NoSuchMethodError: com.lowagie.text.pdf.BaseFont.getCharBBox(I)[I
    at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.setMetricDefaults(ITextFontResolver.java:807)
    at org.xhtmlrenderer.pdf.ITextFontResolver$FontDescription.<init>(ITextFontResolver.java:738)
    at org.xhtmlrenderer.pdf.ITextFontResolver.addCourier(ITextFontResolver.java:471)
    at org.xhtmlrenderer.pdf.ITextFontResolver.createInitialFontMap(ITextFontResolver.java:440)
    at org.xhtmlrenderer.pdf.ITextFontResolver.<init>(ITextFontResolver.java:40)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:113)
    at org.xhtmlrenderer.pdf.ITextRenderer.<init>(ITextRenderer.java:98)
    at com.djade.djade.handlers.processHandler.DjadeConverter.xhtml2Pdf(DjadeConverter.java:227)
    at com.djade.djade.handlers.processHandler.DjadeConverter.convert(DjadeConverter.java:98)
    at com.djade.djade.handlers.processHandler.DjadeConverter.main(DjadeConverter.java:38)

我不知道出了什么问题,我正在使用正确版本的itext进行飞碟。我已经在互联网上寻找解决方案,虽然我发现了类似的问题,但非解决了我的问题,这让我发疯。

我不知道它是从飞碟的版本使用

库Jar版本 飞碟核-9.0.1.jar 飞碟-PDF-9.0.1.jar 飞碟-SWT-9.0.1.jar 飞碟-的log4j-9.0.1.jar iText的-2.0.8.jar

这些是我的类文件中用于运行程序的库。我正在使用eclipse。 任何帮助将受到高度赞赏

0 个答案:

没有答案