Учебники

PDFBox — Извлечение изображения

В предыдущей главе мы увидели, как объединить несколько документов PDF. В этой главе мы поймем, как извлечь изображение со страницы PDF-документа.

Генерация изображения из документа PDF

Библиотека PDFBox предоставляет вам класс с именем PDFRenderer, который отображает документ PDF в AWT BufferedImage.

Ниже приведены шаги для создания изображения из документа PDF.

Шаг 1. Загрузка существующего PDF-документа

Загрузите существующий документ PDF, используя статический метод load () класса PDDocument . Этот метод принимает объект файла в качестве параметра, поскольку это статический метод, который можно вызвать, используя имя класса, как показано ниже.

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 документа

Вы можете визуализировать изображение на определенной странице, используя метод renderImage () класса Renderer, в этот метод необходимо передать индекс страницы, на которой у вас есть изображение, которое должно быть отображено.

BufferedImage image = renderer.renderImage(0);

Шаг 4: Запись изображения в файл

Вы можете записать изображение, созданное на предыдущем шаге, в файл, используя метод write () . Для этого метода вам нужно передать три параметра —

  • Рендеринг изображения объекта.
  • Строка, представляющая тип изображения (jpg или png).
  • Файловый объект, в который нужно сохранить извлеченное изображение.
ImageIO.write(image, "JPEG", new File("C:/PdfBox_Examples/myimage.jpg"));

Шаг 5: Закрытие документа

Наконец, закройте документ с помощью метода close () класса PDDocument, как показано ниже.

document.close();

пример

Предположим, у нас есть документ PDF — sample.pdf по пути C: \ PdfBox_Examples \, и он содержит изображение на своей первой странице, как показано ниже.

Образец изображения

Этот пример демонстрирует, как преобразовать вышеупомянутый документ PDF в файл изображения. Здесь мы извлечем изображение на 1-й странице документа PDF и сохраним его как 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, как показано ниже.