欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

千鋒扣丁學堂Java培訓之基于PDF box將PDF轉(zhuǎn)為圖片實現(xiàn)方法

2019-07-15 13:38:39 2372瀏覽

今天千鋒扣丁學堂Java培訓老師給大家分享一篇關(guān)于基于PDF box將PDF轉(zhuǎn)為圖片的實現(xiàn)方法的詳細介紹,下面我們一起來看一下吧。



1、引用:fontbox-2.0.16.jar、pdfbox-app-2.0.16.jar版本一定要正確,否則代碼會有問題。

main函數(shù):

package kevin.cn;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.PDFBox;
import kevin.cn.PdfUtil;
@SuppressWarnings("unused")
public class Test {
  //經(jīng)過測試,dpi為96,100,105,120,150,200中,105顯示效果較為清晰,體積穩(wěn)定,dpi越高圖片體積越大,一般電腦顯示分辨率為96
  public static final float DEFAULT_DPI = 105;
  //默認轉(zhuǎn)換的圖片格式為jpg
  public static final String DEFAULT_FORMAT = "jpg";
  public static void main(String[] args) throws Exception {
    pdfToImage("/media/kevin/FileData/JavaCode/pdfboxTest/企業(yè)信息化建設論文.pdf","/media/kevin/FileData/JavaCode/pdfboxTest/img/7.jpg",5);
  }

實現(xiàn)函數(shù):

/**
   * pdf轉(zhuǎn)圖片
   *
   * @param pdfPath PDF路徑 
   * @imgPath img路徑
   * @page_end 要轉(zhuǎn)換的頁碼,也可以定義開始頁碼和結(jié)束頁碼,我這里只需要一頁,根據(jù)需求自行添加
   */
  public static void pdfToImage(String pdfPath, String imgPath,int page_end) {
    try {
      //圖像合并使用參數(shù)
      // 總寬度
      int width = 0;
      // 保存一張圖片中的RGB數(shù)據(jù)
      int[] singleImgRGB;
      int shiftHeight = 0;
      //保存每張圖片的像素值
      BufferedImage imageResult = null;
      //利用PdfBox生成圖像
      PDDocument pdDocument = PDDocument.load(new File(pdfPath));
      PDFRenderer renderer = new PDFRenderer(pdDocument);
      //循環(huán)每個頁碼
      for (int i = 0, len = pdDocument.getNumberOfPages(); i < len; i++) {
        if (i==page_end) {
          BufferedImage image = renderer.renderImageWithDPI(i, DEFAULT_DPI, ImageType.RGB);
          int imageHeight = image.getHeight();
          int imageWidth = image.getWidth();
          //計算高度和偏移量
          //使用第一張圖片寬度;
          width = imageWidth;
          //保存每頁圖片的像素值
          imageResult = new BufferedImage(width, imageHeight, BufferedImage.TYPE_INT_RGB);
          //這里有高度,可以將imageHeight*len,我這里值提取一頁所以不需要
           singleImgRGB = image.getRGB(0, 0, width, imageHeight, null, 0, width);
           // 寫入流中
           imageResult.setRGB(0, shiftHeight, width, imageHeight, singleImgRGB, 0, width);
        }else if(i>page_end) {
          continue;
        }
      }
      pdDocument.close();
      // 寫圖片
      ImageIO.write(imageResult, DEFAULT_FORMAT, new File(imgPath));
    } catch (Exception e) {
      e.printStackTrace();
    }
    //OVER
  }

以上就是關(guān)于千鋒扣丁學堂Java培訓之基于PDF box將PDF轉(zhuǎn)為圖片實現(xiàn)方法的全部內(nèi)容,希望對大家有所幫助,想要了解更多關(guān)于Java方面內(nèi)容的小伙伴,請關(guān)注扣丁學堂Java培訓官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權(quán)威的Java視頻,Java培訓后的前景無限,行業(yè)薪資和未來的發(fā)展會越來越好的,扣丁學堂老師精心推出的Java視頻教程定能讓你快速掌握Java從入門到精通開發(fā)實戰(zhàn)技能。扣丁學堂Java技術(shù)交流群:850353792。


                        JavaEE/微服務/源碼解析/分布式/企業(yè)級架構(gòu)【VIP體驗課】


     【關(guān)注微信公眾號獲取更多學習資料】       【掃碼進入JavaEE/微服務VIP免費公開課】  



查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>

標簽: Java培訓 Java視頻教程 Java多線程 Java面試題 Java學習視頻 springBoot項目

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部