java实现pdf转换图片

一、需求

   将PDF文档类转换成图片形式。    


二、实现方式

    2.1 pdfbox     

 1         PDDocument doc = null;
 2         try {
 3             doc = PDDocument.load(sourceFile);
 4             PDFRenderer renderer = new PDFRenderer(doc);
 5             int pageCount = doc.getNumberOfPages();
 6             for (int i = 0; i < pageCount; i++) {
 7                 BufferedImage image = renderer.renderImageWithDPI(i, DPI); // 162.8
 8                 ImageIO.write(image, ConvertImageConst.JPG, new File(filepathNoSuffix + File.separator + i + ConvertImageConst.SUFFIX_JPG));
 9             }
10             log.info("jpg_ok. space-time: {}, pageSize={} ", (System.currentTimeMillis() - startTime), pageCount);
11             return pageCount;
12         } catch (IOException e) {
13             log.error("pdfDocumentRender IOException {} ", e);
14         } catch (Error e) {
15             log.error("pdfDocumentRender Error {} ", e);
16         } finally {
17             try {
18                 if (doc != null) {
19                     doc.close();
20                 }
21             } catch (IOException e) {
22                 log.error("pdfDocumentRender finally IOError ", e.getMessage());
23             }
24             lock.unlock();
25         }

 

    2.2 ghostscript 

 1  gswin64 -dSAFER -dBATCH -dNOPAUSE -r300 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=jpeg -sOutputFile=test%03d.jpg  0002.pdf
 2 
 3     命令:
 4 
 5      gswin64 主程序
 6 
 7      -params: 
 8 
 9      -sDEVICE=jpeg                 // jpeg格式
10 
11      -sOutputFile=test%03d.jpg // 输出的图片名称 %03d 三位数字 %d 一位数字
12 
13       0002.pdf  //待转换的pdf文件

 

三、比较

实现方式 优点   缺点
pdfbox maven引入既可开发 转换速度慢,且可能内存溢出 
ghostscript 转换速度快 依赖ghostscript插件
posted @ 2021-02-01 09:08  pengsn  阅读(3228)  评论(0编辑  收藏  举报