PDFBox - dodawanie tekstu

W poprzednim rozdziale omówiliśmy, jak dodawać strony do dokumentu PDF. W tym rozdziale omówimy, jak dodać tekst do istniejącego dokumentu PDF.

Dodawanie tekstu do istniejącego dokumentu PDF

Możesz dodać zawartość do dokumentu za pomocą biblioteki PDFBox, zapewnia to klasę o nazwie PDPageContentStream, która zawiera metody wymagane do wstawiania tekstu, obrazów i innych typów zawartości na stronie dokumentu PDF.

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 = document.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

Za pomocą obiektu klasy można wstawiać różne rodzaje elementów danych 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 przy użyciu metod beginText () i endText () klasy PDPageContentStream, 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 PDPageContentStreamklasa, jak pokazano poniżej. Do tej metody należy podać rodzaj i rozmiar czcionki.

contentStream.setFont( font_type, font_size );

Krok 7: Wstawianie tekstu

Możesz wstawić tekst na stronę za pomocą ShowText() metoda PDPageContentStreamklasa, jak pokazano poniżej. Ta metoda akceptuje wymagany tekst w postaci ciągu.

contentStream.showText(text);

Krok 8: Zakończenie tekstu

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

contentStream.endText();

Krok 9: Zamknięcie PDPageContentStream

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

contentstream.close();

Krok 10: 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 11: 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ć zawartość do strony w dokumencie. Tutaj utworzymy program Java do załadowania dokumentu PDF o nazwiemy_doc.pdf, który jest zapisywany w ścieżce C:/PdfBox_Examples/i dodaj do niego tekst. Zapisz ten kod w pliku o nazwieAddingContent.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();
   }
}

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

javac AddingContent.java 
java AddingContent

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, jak pokazano poniżej.