В примере, представленном в предыдущей главе, мы обсуждали, как добавить текст на страницу в PDF, но с помощью этой программы вы можете добавить только текст, который поместится в одну строку. Если вы попытаетесь добавить больше контента, весь текст, который превышает пространство строки, не будет отображаться.
Например, если вы выполнили вышеуказанную программу в предыдущей главе, передав следующую строку, будет отображаться только ее часть.
String text = "This is an example of adding text to a page in the pdf document. we can add as many lines as we want like this using the showText() method of the ContentStream class";
Замените текст строки из примера в предыдущей главе вышеупомянутой строкой и выполните ее. После выполнения вы получите следующий вывод.
Если вы внимательно наблюдаете за выводом, вы можете заметить, что отображается только часть строки.
Чтобы добавить несколько строк в PDF-файл, необходимо установить начальную строку с помощью метода setLeading () и перейти к новой строке с помощью метода newline () после завершения каждой строки.
меры
Ниже приведены шаги для создания пустого документа и добавления содержимого на страницу в нем.
Шаг 1: Загрузка существующего документа
Вы можете загрузить существующий документ, используя метод load () класса PDDocument. Поэтому создайте экземпляр этого класса и загрузите необходимый документ, как показано ниже.
File file = new File("Path of the document"); PDDocument doc = PDDocument.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: Установка начального текста
Вы можете установить начальный текст, используя метод setLeading (), как показано ниже.
contentStream.setLeading(14.5f);
Шаг 8: Вставка нескольких строк с помощью newline ()
Вы можете вставить несколько строк с помощью метода ShowText () класса PDPageContentStream , разделив каждую из них с помощью метода newline (), как показано ниже.
contentStream. ShowText(text1); contentStream.newLine(); contentStream. ShowText(text2);
Шаг 9: Завершение текста
После вставки текста необходимо завершить текст с помощью метода endText () класса PDPageContentStream, как показано ниже.
contentStream.endText();
Шаг 10: Закрытие PDPageContentStream
Закройте объект PDPageContentStream, используя метод close (), как показано ниже.
contentstream.close();
Шаг 11: Сохранение документа
После добавления необходимого содержимого сохраните документ PDF с помощью метода save () класса PDDocument, как показано в следующем блоке кода.
doc.save("Path");
Шаг 12: Закрытие документа
Наконец, закройте документ с помощью метода close () класса PDDocument, как показано ниже.
doc.close();
пример
Этот пример демонстрирует, как добавить несколько строк в PDF с помощью PDFBox. Сохраните эту программу в файле с именем AddMultipleLines.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 AddMultipleLines { public static void main(String args[]) throws IOException { //Loading an existing document File file = new File("C:/PdfBox_Examples/my_pdf.pdf"); PDDocument doc = document.load(file); //Creating a PDF Document PDPage page = doc.getPage(1); PDPageContentStream contentStream = new PDPageContentStream(doc, page); //Begin the Content stream contentStream.beginText(); //Setting the font to the Content stream contentStream.setFont( PDType1Font. TIMES_ROMAN , 16 ); //Setting the leading contentStream.setLeading(14.5f); //Setting the position for the line contentStream.newLineAtOffset(25, 725); String text1 = "This is an example of adding text to a page in the pdf document. we can add as many lines"; String text2 = "as we want like this using the ShowText() method of the ContentStream class"; //Adding text in the form of string contentStream. ShowText (text1); contentStream.newLine(); contentStream. ShowText (text2); //Ending the content stream contentStream.endText(); System.out.println("Content added"); //Closing the content stream contentStream.close(); //Saving the document doc.save(new File("C:/PdfBox_Examples/new.pdf")); //Closing the document doc.close(); } }
Скомпилируйте и выполните сохраненный файл Java из командной строки, используя следующие команды.
javac AddMultipleLines.java java AddMultipleLines
После выполнения вышеуказанная программа добавляет данный текст в документ и отображает следующее сообщение.
Content added
Если вы проверите PDF Document new.pdf по указанному пути, вы увидите, что данное содержимое добавляется в документ в несколько строк, как показано ниже.