日期:2014-05-20  浏览次数:20761 次

pdfbox创建pdf文档出错 求大神给看看
public static void main(String[] args) throws Exception {
PDDocument document = new PDDocument(); //创建一个空文档
PDPage page = new PDPage();         //创建一个新的页
PDFont font = PDType1Font.HELVETICA_BOLD; //获得一种字体
document.addPage(page);          //把页面加入文档中间
//创建有个输出流
PDPageContentStream contentStream = new PDPageContentStream(document, page); 
//开始编辑页面
contentStream.beginText();
//设置字体
contentStream.setFont( font, 12 );
//设置文字位置(x,y)
contentStream.moveTextPositionByAmount( 100, 700 );
//画文字 ‘hellword’
contentStream.drawString( "hello !");
//结束编辑
contentStream.endText();
//关闭流
contentStream.close();
//保存文件
document.save("d:\\java.pdf");
//关闭文档
document.close();

}

第一句直接报错了  new PDDocument();

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.pdfbox.cos.COSDocument.<clinit>(COSDocument.java:49)
at org.apache.pdfbox.pdmodel.PDDocument.<init>(PDDocument.java:125)
at main.CreatPDF.main(CreatPDF.java:23)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 3 more
------解决方案--------------------
因为pdfbox的dependence里注明了需要commons logging库,去apache下这个库然后加到classpath里