国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java中pdf轉圖片的實現方法

2019-11-26 13:27:43
字體:
來源:轉載
供稿:網友

JAVA中實現pdf轉圖片可以通過第三方提供的架包,這里介紹幾種常用的,可以根據自身需求選擇使用。

一、icepdf。有收費版和開源版,幾種方法里最推薦的。轉換的效果比較好,能識別我手頭文件中的中文,就是轉換后可能字體的關系部分字間距有點寬。因為,字體支持是要收費的,所以轉換的圖片會帶有官方的水印。去水印的方法可以查看另一篇文章:icepdf去水印方法

1、下載icepdf的架包,并導入項目中,這里用到4個,如下:

2、附上代碼例子:

  String filePath = "c:/test.pdf";  Document document = new Document();  document.setFile(filePath);  float scale = 2.5f;//縮放比例  float rotation = 0f;//旋轉角度      for (int i = 0; i < document.getNumberOfPages(); i++) {    BufferedImage image = (BufferedImage)    document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);    RenderedImage rendImage = image;    try {      File file = new File("c:/iecPDF_" + i + ".png");      ImageIO.write(rendImage, "png", file); 14     } catch (IOException e) {      e.printStackTrace();    }    image.flush();  }  document.dispose();

例子中是pdf轉png格式的,也可以將12、13行改成jpg,轉出jpg格式的,但是從轉換效果來看png的清晰度會相對較高。有個小技巧是12行改成jpg,但13行使用png,也就是轉換成jpg格式但有png清晰度的圖片。

二、pdfbox。轉換效果還可以,能識別我手中文件大部分內容,有部分內容無法識別。

1、下載pdfbox的架包,并導入項目,這里用到2個,如下:

2、附上代碼例子:

  File file = new File("c://test.pdf");  try {    PDDocument doc = PDDocument.load(file);    PDFRenderer renderer = new PDFRenderer(doc); 5     int pageCount = doc.getNumberOfPages();    for(int i=0;i<pageCount;i++){      BufferedImage image = renderer.renderImageWithDPI(i, 296);//     BufferedImage image = renderer.renderImage(i, 2.5f);      ImageIO.write(image, "PNG", new File("C://pdfbox_image.png"));    }  } catch (IOException e) {    e.printStackTrace();  }

例子中rederImageWithDPI的第二個參數為dpi分辨率單位,可根據需求調節大小,代碼第八行提供了架包里另一種轉圖片的方法,第二個參數為縮放比。

三、jpedal。效果不太理想,貌似對中文支持不太好,下面的lgpl版本是開源版。

1、下載jpedal的架包,并導入項目中,如下:

2、附上代碼例子:

  PdfDecoder decode_pdf = new PdfDecoder(true);  try {    decode_pdf.openPdfFile("c://test.pdf"); //file//   decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file//   decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF//   decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false);//   decode_pdf.openPdfFileFromInputStream(in, false);     int start = 1, end = decode_pdf.getPageCount();    for(int i = start; i < end+1; i++){      BufferedImage img=decode_pdf.getPageAsImage(i);      try {        ImageIO.write(img, "png", new File("C://jpedal_image.png"));      } catch (IOException e) {        e.printStackTrace();      }     }    decode_pdf.closePdfFile();  } catch (PdfException e) {    e.printStackTrace();  }

例子的3-7行還提供了幾種不同的pdf打開方式,可以根據自己的需要選擇使用。

以上這篇java中pdf轉圖片的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清镇市| 鲁山县| 腾冲县| 台东县| 昌图县| 大关县| 如东县| 汽车| 周至县| 永清县| 桂阳县| 汉源县| 淮北市| 七台河市| 铅山县| 绥芬河市| 神木县| 海阳市| 股票| 武冈市| 大兴区| 于都县| 皮山县| 射阳县| 诸城市| 平安县| 双流县| 上饶县| 英吉沙县| 穆棱市| 盘山县| 探索| 武宣县| 开远市| 铜山县| 元谋县| 定州市| 靖宇县| 红安县| 响水县| 洛宁县|