В предыдущей главе мы увидели, как извлечь текст из существующего документа PDF. В этой главе мы обсудим, как вставить изображение в документ PDF.
Вставка изображения в документ PDF
Вы можете вставить изображение в документ PDF, используя методы createFromFile () и drawImage () классов PDImageXObject и PDPageContentStream соответственно.
Ниже приведены шаги для извлечения текста из существующего документа PDF.
Шаг 1. Загрузка существующего PDF-документа
Загрузите существующий документ PDF, используя статический метод load () класса PDDocument . Этот метод принимает объект файла в качестве параметра, поскольку это статический метод, который можно вызвать, используя имя класса, как показано ниже.
File file = new File("path of the document") PDDocument doc = PDDocument.load(file);
Шаг 2: Получение страницы
Выберите страницу в документе PDF и получите ее объект страницы, используя метод getPage (), как показано ниже.
PDPage page = doc.getPage(0);
Шаг 3: Создание объекта PDImageXObject
Класс PDImageXObject в библиотеке PDFBox представляет изображение. Он предоставляет все необходимые методы для выполнения операций, связанных с изображением, таких как вставка изображения, установка его высоты, установка его ширины и т. Д.
Мы можем создать объект этого класса, используя метод createFromFile () . Для этого метода нам нужно передать путь к изображению, которое мы хотим добавить, в форме строки и объект документа, к которому нужно добавить изображение.
PDImageXObject pdImage = PDImageXObject. createFromFile ("C:/logo.png", doc);
Шаг 4. Подготовка потока контента
Вы можете вставлять различные типы элементов данных, используя объект класса с именем PDPageContentStream . Вам необходимо передать объект документа и объект страницы в конструктор этого класса, поэтому создайте экземпляр этого класса, передав эти два объекта, созданные на предыдущих шагах, как показано ниже.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Шаг 5: Рисование изображения в PDF документе
Вы можете вставить изображение в документ PDF, используя метод drawImage () . К этому методу необходимо добавить объект изображения, созданный на предыдущем шаге, и необходимые размеры изображения (ширина и высота), как показано ниже.
contentstream.drawImage(pdImage, 70, 250);
Шаг 6: Закрытие PDPageContentStream
Закройте объект PDPageContentStream, используя метод close (), как показано ниже.
contentstream.close();
Шаг 7: Сохранение документа
После добавления необходимого содержимого сохраните документ PDF с помощью метода save () класса PDDocument, как показано в следующем блоке кода.
doc.save("Path");
Шаг 8: Закрытие документа
Наконец, закройте документ с помощью метода close () класса PDDocument, как показано ниже.
doc.close();
пример
Предположим, у нас есть документ PDF с именем sample.pdf по пути C: / PdfBox_Examples / с пустыми страницами, как показано ниже.
Этот пример демонстрирует, как добавить изображение на пустую страницу вышеупомянутого документа PDF. Здесь мы загрузим документ PDF с именем sample.pdf и добавим к нему изображение. Сохраните этот код в файле с именем InsertingImage.java.
import java.io.File; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; public class InsertingImage { public static void main(String args[]) throws Exception { //Loading an existing document File file = new File("C:/PdfBox_Examples/sample.pdf"); PDDocument doc = PDDocument.load(file); //Retrieving the page PDPage page = doc.getPage(0); //Creating PDImageXObject object PDImageXObject pdImage = PDImageXObject.createFromFile("C:/PdfBox_Examples/logo.png",doc); //creating the PDPageContentStream object PDPageContentStream contents = new PDPageContentStream(doc, page); //Drawing the image in the PDF document contents.drawImage(pdImage, 70, 250); System.out.println("Image inserted"); //Closing the PDPageContentStream object contents.close(); //Saving the document doc.save("C:/PdfBox_Examples/sample.pdf"); //Closing the document doc.close(); } }
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды.
javac InsertingImage.java java InsertingImage
После выполнения вышеупомянутая программа вставляет изображение на указанную страницу данного документа PDF с отображением следующего сообщения.
Image inserted
Если вы проверите документ sample.pdf , вы увидите , что в него вставлено изображение, как показано ниже.