В предыдущей главе мы обсуждали, как добавить страницы в PDF-документ. В этой главе мы обсудим, как добавить текст в существующий документ PDF.
Добавление текста в существующий документ PDF
Вы можете добавлять содержимое в документ с помощью библиотеки PDFBox, которая предоставляет вам класс с именем PDPageContentStream, который содержит необходимые методы для вставки текста, изображений и других типов содержимого на страницу PDFDocument.
Ниже приведены шаги для создания пустого документа и добавления содержимого на страницу в нем.
Шаг 1: Загрузка существующего документа
Вы можете загрузить существующий документ, используя метод load () класса PDDocument. Поэтому создайте экземпляр этого класса и загрузите необходимый документ, как показано ниже.
File file = new File("Path of the document"); PDDocument doc = document.load(file);
Шаг 2: Получение необходимой страницы
Вы можете получить нужную страницу в документе с помощью метода getPage () . Получите объект требуемой страницы, передав его индекс этому методу, как показано ниже.
PDPage page = doc.getPage(1);
Шаг 3: Подготовка потока контента
Вы можете вставлять различные типы элементов данных, используя объект класса PDPageContentStream . Вам необходимо передать объект документа и объект страницы в конструктор этого класса, поэтому создайте экземпляр этого класса, передав эти два объекта, созданные на предыдущих шагах, как показано ниже.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Шаг 4: Начало текста
При вставке текста в документ PDF вы можете указать начальную и конечную точки текста, используя методы beginText () и endText () класса PDPageContentStream, как показано ниже.
contentStream.beginText(); ……………………….. code to add text content ……………………….. contentStream.endText();
Поэтому начинайте текст, используя метод beginText (), как показано ниже.
contentStream.beginText();
Шаг 5: установка положения текста
Используя метод newLineAtOffset () , вы можете установить позицию в потоке контента на странице.
//Setting the position for the line contentStream.newLineAtOffset(25, 700);
Шаг 6: установка шрифта
Вы можете установить шрифт текста в требуемый стиль, используя метод setFont () класса PDPageContentStream, как показано ниже. Для этого метода вам нужно передать тип и размер шрифта.
contentStream.setFont( font_type, font_size );
Шаг 7: Вставка текста
Вы можете вставить текст на страницу, используя метод ShowText () класса PDPageContentStream, как показано ниже. Этот метод принимает необходимый текст в виде строки.
contentStream.showText(text);
Шаг 8: Завершение текста
После вставки текста необходимо завершить текст с помощью метода endText () класса PDPageContentStream, как показано ниже.
contentStream.endText();
Шаг 9: Закрытие PDPageContentStream
Закройте объект PDPageContentStream, используя метод close (), как показано ниже.
contentstream.close();
Шаг 10: Сохранение документа
После добавления необходимого содержимого сохраните документ PDF с помощью метода save () класса PDDocument, как показано в следующем блоке кода.
doc.save("Path");
Шаг 11: Закрытие документа
Наконец, закройте документ с помощью метода close () класса PDDocument, как показано ниже.
doc.close();
пример
Этот пример демонстрирует, как добавить содержимое на страницу в документе. Здесь мы создадим Java-программу для загрузки документа PDF с именем my_doc.pdf , который сохраняется по пути C: / PdfBox_Examples / , и добавим в него некоторый текст. Сохраните этот код в файле с именем AddingContent.java .
import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; public class AddingContent { public static void main (String args[]) throws IOException { //Loading an existing document File file = new File("C:/PdfBox_Examples/my_doc.pdf"); PDDocument document = PDDocument.load(file); //Retrieving the pages of the document PDPage page = document.getPage(1); PDPageContentStream contentStream = new PDPageContentStream(document, page); //Begin the Content stream contentStream.beginText(); //Setting the font to the Content stream contentStream.setFont(PDType1Font.TIMES_ROMAN, 12); //Setting the position for the line contentStream.newLineAtOffset(25, 500); String text = "This is the sample document and we are adding content to it."; //Adding text in the form of string contentStream.showText(text); //Ending the content stream contentStream.endText(); System.out.println("Content added"); //Closing the content stream contentStream.close(); //Saving the document document.save(new File("C:/PdfBox_Examples/new.pdf")); //Closing the document document.close(); } }
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды.
javac AddingContent.java java AddingContent
После выполнения вышеуказанная программа добавляет данный текст в документ и отображает следующее сообщение.
Content added
Если вы проверите PDF Document new.pdf по указанному пути, вы увидите, что данное содержимое добавляется в документ, как показано ниже.