Ubuntu下Java使用pdfbox将pdf转换为图片的方法及问题

时间:2022-01-11 08:50:07

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