将一份18M的PDF文件转成图片,因为清晰度的需要设置DPI为300,转换后体积44M,花了35秒!有没有大佬有优化的办法,太难顶了。
/**
* pdf 转换为图片
* @param pdfPath pdf文件路径
* @param imgPath 图片导出目标路径
*/
public static void getImgInPDF(String pdfPath,String imgPath){
PDDocument document = null;
try {
File pdfFile = new File(pdfPath);
// 加载pdf文档,在pdmodel包
document = PDDocument.load(pdfFile);
// PDF文档总页数
// PDF文档渲染对象,在rendering包
PDFRenderer renderer = new PDFRenderer(document);
int pageCount = document.getNumberOfPages();
for (int i = 0; i < pageCount; i++) {
// DPI越大图片越清晰体积也越大
BufferedImage image = renderer.renderImageWithDPI(i,300);
ImageIO.write(image, "jpg", new File(imgPath+i+".jpg"));
}
document.close();
}catch (Exception e){
e.printStackTrace();
}
}