PDFBox - 將 PDF 轉換為影像。



在上一章中,我們瞭解瞭如何合併多個 PDF 文件。在本章中,我們將瞭解如何從 PDF 文件的頁面中提取影像。

從 PDF 文件生成影像

PDFBox 庫提供了一個名為 PDFRenderer 的類,它可以將 PDF 文件渲染成 AWT BufferedImage。

以下是從 PDF 文件生成影像的步驟。

步驟 1:載入現有的 PDF 文件

使用 PDDocument 類的靜態方法 load() 載入現有的 PDF 文件。此方法接受檔案物件作為引數,由於這是一個靜態方法,因此您可以使用類名呼叫它,如下所示。

File file = new File("path of the document") 
PDDocument document = PDDocument.load(file);

步驟 2:例項化 PDFRenderer 類

名為 PDFRenderer 的類將 PDF 文件渲染成 AWT BufferedImage。因此,您需要例項化此類,如下所示。此類的建構函式接受一個文件物件;傳遞在上一步驟中建立的文件物件,如下所示。

PDFRenderer renderer = new PDFRenderer(document);

步驟 3:從 PDF 文件渲染影像

您可以使用 Renderer 類的 renderImage() 方法渲染特定頁面中的影像,此方法需要傳遞要渲染的影像所在的頁面的索引。

BufferedImage image = renderer.renderImage(0);

步驟 4:將影像寫入檔案

您可以使用 write() 方法將上一步驟中渲染的影像寫入檔案。此方法需要傳遞三個引數:

  • 渲染的影像物件。
  • 表示影像型別(jpg 或 png)的字串。
  • 需要儲存提取影像的檔案物件。
ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));

步驟 5:關閉文件

最後,使用 PDDocument 類的 close() 方法關閉文件,如下所示。

document.close();

示例

假設我們在路徑 C:\PdfBox_Examples\ 中有一個 PDF 文件 — sample.pdf,並且它在第一頁包含一個影像,如下所示。

Sample Image

此示例演示如何將上述 PDF 文件轉換為影像檔案。在這裡,我們將檢索 PDF 文件第 1 頁中的影像並將其儲存為 myimage.jpg。將此程式碼儲存為 PdfToImage.java

import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
public class PdfToImage {

   public static void main(String args[]) throws Exception {

      //Loading an existing PDF document
      File file = new File("C:/PdfBox_Examples/sample.pdf");
      PDDocument document = PDDocument.load(file);
       
      //Instantiating the PDFRenderer class
      PDFRenderer renderer = new PDFRenderer(document);

      //Rendering an image from the PDF document
      BufferedImage image = renderer.renderImage(0);

      //Writing the image to a file
      ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));
       
      System.out.println("Image created");
       
      //Closing the document
      document.close();

   }
}

使用以下命令從命令提示符編譯並執行儲存的 Java 檔案。

javac PdfToImage.java 
java PdfToImage

執行後,上述程式將檢索給定 PDF 文件中的影像,並顯示以下訊息。

Image created

如果您驗證給定的路徑,您可以觀察到影像已生成並儲存為 myimage.jpg,如下所示。

Generateimage
廣告

© . All rights reserved.