java實現pdf檔案截圖的方法【附PDFRenderer.jar下載】,pdfpdfrenderer.jar

來源:互聯網
上載者:User

java實現pdf檔案的方法【附PDFRenderer.jar下載】,pdfpdfrenderer.jar

本文執行個體講述了java實現pdf檔案的方法。分享給大家供大家參考,具體如下:

最近做的一個網站中,有個需求是上傳pdf檔案,顯示pdf的封頁,點擊封頁之後進行線上閱讀,這裡使用的是PDFRender對pdf進行。

public static boolean createScreenShoot(String source, String target) {    File file = new File(source);    if (!file.exists()) {      System.err.println("路徑[" + source + "]對應的pdf檔案不存在!");      return false;    }    try{      RandomAccessFile raf = new RandomAccessFile(file, "r");      FileChannel channel = raf.getChannel();      ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());      PDFFile pdffile = new PDFFile(buf);      int num = pdffile.getNumPages();      for(int i = 1; i < num; i++){         PDFPage page = pdffile.getPage(1);          // get the width and height for the doc at the default zoom          Rectangle rect = new Rectangle(0, 0, (int) page.getBBox()              .getWidth(), (int) page.getBBox().getHeight());          // generate the image          Image img = page.getImage(rect.width, rect.height, // width &              rect, // clip rect              null, // null for the ImageObserver              true, // fill background with white              true // block until drawing is done              );          BufferedImage tag = new BufferedImage(rect.width, rect.height,   BufferedImage.TYPE_INT_RGB);          tag.getGraphics().drawImage(img, 0, 0, rect.width, rect.height,null);          FileOutputStream out = new FileOutputStream(target+i+"jpg");          JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);          encoder.encode(tag); // JPEG編碼          out.close();      }      return true;    }catch(Exception e){      e.printStackTrace();       return true;    }

另外如果需要線上顯示pdf的話,需要設定回應標頭

response.setContentType("application/pdf");

附:pdfRender.jar點擊此處本站下載

更多java相關內容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時間操作技巧匯總》、《Java操作DOM節點技巧總結》、《Java檔案與目錄操作技巧匯總》及《Java資料結構與演算法教程》。

希望本文所述對大家java程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.