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插件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM