PDFBox - dodawanie wielu wierszy

W przykładzie przedstawionym w poprzednim rozdziale omówiliśmy, jak dodać tekst do strony w pliku PDF, ale za pomocą tego programu można dodać tylko tekst, który mieści się w jednym wierszu. Jeśli spróbujesz dodać więcej treści, cały tekst, który przekracza odstęp między wierszami, nie zostanie wyświetlony.

Na przykład, jeśli wykonasz powyższy program z poprzedniego rozdziału przez przekazanie następującego ciągu, tylko jego część zostanie wyświetlona.

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";

Zastąp string textprzykładu z poprzedniego rozdziału z powyższym ciągiem i wykonaj go. Po wykonaniu otrzymasz następujące dane wyjściowe.

Jeśli uważnie przyjrzysz się wynikowi, możesz zauważyć, że wyświetlana jest tylko część ciągu.

Aby dodać wiele wierszy do pliku PDF, musisz ustawić interlinię za pomocą setLeading() i przejdź do nowej linii za pomocą newline() metoda po zakończeniu każdej linii.

Kroki

Poniżej przedstawiono kroki, aby utworzyć pusty dokument i dodać zawartość do znajdującej się w nim strony.

Krok 1: Ładowanie istniejącego dokumentu

Możesz załadować istniejący dokument za pomocą load()metoda klasy PDDocument. Dlatego utwórz wystąpienie tej klasy i załaduj wymagany dokument, jak pokazano poniżej.

File file = new File("Path of the document"); 
PDDocument doc = PDDocument.load(file);

Krok 2: Uzyskanie wymaganej strony

Możesz uzyskać wymaganą stronę w dokumencie za pomocą getPage()metoda. Pobierz obiekt wymaganej strony, przekazując jego indeks do tej metody, jak pokazano poniżej.

PDPage page = doc.getPage(1);

Krok 3: Przygotowanie strumienia zawartości

Możesz wstawiać różne rodzaje elementów danych za pomocą obiektu o nazwie klasy PDPageContentStream. Musisz przekazać obiekt dokumentu i obiekt strony do konstruktora tej klasy, dlatego utwórz wystąpienie tej klasy, przekazując te dwa obiekty utworzone w poprzednich krokach, jak pokazano poniżej.

PDPageContentStream contentStream = new PDPageContentStream(doc, page);

Krok 4: Rozpoczynanie tekstu

Podczas wstawiania tekstu do dokumentu PDF można określić punkt początkowy i końcowy tekstu za pomocą rozszerzenia beginText() i endText() metody PDPageContentStream klasa, jak pokazano poniżej.

contentStream.beginText(); 
……………………….. 
code to add text content 
……………………….. 
contentStream.endText();

Dlatego zacznij tekst od beginText() metoda, jak pokazano poniżej.

contentStream.beginText();

Krok 5: Ustawianie pozycji tekstu

Używając newLineAtOffset() możesz ustawić pozycję w strumieniu treści na stronie.

//Setting the position for the line 
contentStream.newLineAtOffset(25, 700);

Krok 6: Ustawianie czcionki

Możesz ustawić czcionkę tekstu na wymagany styl za pomocą setFont() metoda PDPageContentStream klasę, jak pokazano poniżej, do tej metody należy przekazać rodzaj i rozmiar czcionki.

contentStream.setFont( font_type, font_size );

Krok 7: Ustawianie interlinii tekstu

Możesz ustawić interlinię tekstu za pomocą setLeading() metoda, jak pokazano poniżej.

contentStream.setLeading(14.5f);

Krok 8: Wstawianie wielu ciągów za pomocą nowej linii ()

Możesz wstawić wiele ciągów za pomocą rozszerzenia ShowText() metoda PDPageContentStream klasy, dzieląc każdą z nich za pomocą newline() metoda, jak pokazano poniżej.

contentStream. ShowText(text1); 
contentStream.newLine(); 
contentStream. ShowText(text2);

Krok 9: Zakończenie tekstu

Po wstawieniu tekstu musisz zakończyć tekst za pomocą endText() metoda PDPageContentStream klasa, jak pokazano poniżej.

contentStream.endText();

Krok 10: Zamknięcie PDPageContentStream

Zamknij PDPageContentStream obiekt za pomocą close() metoda, jak pokazano poniżej.

contentstream.close();

Krok 11: Zapisywanie dokumentu

Po dodaniu wymaganej treści zapisz dokument PDF przy użyciu rozszerzenia save() metoda PDDocument klasa, jak pokazano w poniższym bloku kodu.

doc.save("Path");

Krok 12: Zamknięcie dokumentu

Na koniec zamknij dokument przy użyciu rozszerzenia close() metoda PDDocument klasa, jak pokazano poniżej.

doc.close();

Przykład

Ten przykład pokazuje, jak dodać wiele wierszy w pliku PDF za pomocą PDFBox. Zapisz ten program w pliku o nazwieAddMultipleLines.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();
   }
}

Skompiluj i uruchom zapisany plik Java z wiersza poleceń, używając następujących poleceń.

javac AddMultipleLines.java 
java AddMultipleLines

Powyższy program po wykonaniu dodaje podany tekst do dokumentu i wyświetla następujący komunikat.

Content added

Jeśli zweryfikujesz dokument PDF new.pdf w określonej ścieżce można zauważyć, że dana treść jest dodawana do dokumentu w wielu wierszach, jak pokazano poniżej.