我试图用飞碟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。 任何帮助将受到高度赞赏