В предыдущей главе мы увидели, как объединить несколько документов 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, как показано ниже.