Учебники

PDFBox — Добавление нескольких строк

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