Ubuntu下Java使用pdfbox将pdf转换为图片的方法及问题
使用pdfbox-2.0.3和fontbox-2.0.3,实现pdf转图片功能。
官方手册链接:
http://pdfbox.apache.org/docs/2.0.3/javadocs/
此处推荐两个比较好的jar包下载网址:
http://mvnrepository.com/
http://repo1.maven.org/maven2/
注意:执行程序的主机上必须能够识别pdf中的字体。
Ubuntu字体参考链接:
http://blog.163.com/hlmdf@126/blog/static/632836462010111481419940/
主要实现方法如下:
public static void pdfToImage(){
File file = new File("e:/oo.pdf");
try {
PDDocument doc = PDDocument.load(file);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for(int i=0; i<pageCount; i++){
BufferedImage image = renderer.renderImage(i, 2.5f);
// BufferedImage image = renderer.renderImageWithDPI(i,296);
ImageIO.write(image,"PNG",new File("e:/image/"+i+".png"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
在windows环境下,使用程序中的renderImage和renderImageWithDPI均能实现转换。
但,在Ubuntu环境下,renderImage能够成功,而会在renderImageWithDPI处阻塞,不太理解原因,还请各位大神不吝赐教。
本文参考链接及扩展阅读:
http://www.cnblogs.com/pcheng/p/5704470.html