PDFBox - Hinzufügen von Text

Im vorherigen Kapitel haben wir erläutert, wie Sie einem PDF-Dokument Seiten hinzufügen. In diesem Kapitel wird erläutert, wie Sie einem vorhandenen PDF-Dokument Text hinzufügen.

Hinzufügen von Text zu einem vorhandenen PDF-Dokument

Sie können einem Dokument mithilfe der PDFBox-Bibliothek Inhalte hinzufügen. Dadurch erhalten Sie eine Klasse mit dem Namen PDPageContentStream, die die erforderlichen Methoden zum Einfügen von Text, Bildern und anderen Arten von Inhalten in eine Seite eines PDFDocument enthält.

Im Folgenden finden Sie die Schritte zum Erstellen eines leeren Dokuments und zum Hinzufügen von Inhalten zu einer Seite darin.

Schritt 1: Laden eines vorhandenen Dokuments

Sie können ein vorhandenes Dokument mit dem laden load()Methode der PDDocument-Klasse. Instanziieren Sie daher diese Klasse und laden Sie das erforderliche Dokument wie unten gezeigt.

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

Schritt 2: Abrufen der erforderlichen Seite

Sie können die gewünschte Seite in einem Dokument mit der getPage()Methode. Rufen Sie das Objekt der erforderlichen Seite ab, indem Sie den Index wie unten gezeigt an diese Methode übergeben.

PDPage page = doc.getPage(1);

Schritt 3: Vorbereiten des Inhaltsstroms

Sie können verschiedene Arten von Datenelementen mit dem Objekt der Klasse einfügen PDPageContentStream. Sie müssen das Dokumentobjekt und das Seitenobjekt an den Konstruktor dieser Klasse übergeben. Instanziieren Sie diese Klasse daher, indem Sie diese beiden Objekte übergeben, die in den vorherigen Schritten wie unten gezeigt erstellt wurden.

PDPageContentStream contentStream = new PDPageContentStream(doc, page);

Schritt 4: Beginn des Textes

Beim Einfügen von Text in ein PDF-Dokument können Sie den Start- und Endpunkt des Textes mithilfe der Methoden beginText () und endText () der PDPageContentStream-Klasse wie unten gezeigt angeben.

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

Beginnen Sie den Text daher mit dem beginText() Methode wie unten gezeigt.

contentStream.beginText();

Schritt 5: Festlegen der Position des Textes

Verwendung der newLineAtOffset() Methode können Sie die Position im Inhaltsstrom auf der Seite festlegen.

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

Schritt 6: Einstellen der Schriftart

Sie können die Schriftart des Textes mit dem auf den gewünschten Stil einstellen setFont() Methode der PDPageContentStreamKlasse wie unten gezeigt. Für diese Methode müssen Sie den Typ und die Größe der Schriftart übergeben.

contentStream.setFont( font_type, font_size );

Schritt 7: Einfügen des Textes

Sie können den Text mit der in die Seite einfügen ShowText() Methode der PDPageContentStreamKlasse wie unten gezeigt. Diese Methode akzeptiert den erforderlichen Text in Form einer Zeichenfolge.

contentStream.showText(text);

Schritt 8: Beenden des Textes

Nach dem Einfügen des Textes müssen Sie den Text mit dem beenden endText() Methode der PDPageContentStream Klasse wie unten gezeigt.

contentStream.endText();

Schritt 9: Schließen des PDPageContentStream

Schließe PDPageContentStream Objekt mit dem close() Methode wie unten gezeigt.

contentstream.close();

Schritt 10: Speichern des Dokuments

Speichern Sie nach dem Hinzufügen des erforderlichen Inhalts das PDF-Dokument mit dem save() Methode der PDDocument Klasse wie im folgenden Codeblock gezeigt.

doc.save("Path");

Schritt 11: Schließen des Dokuments

Schließen Sie das Dokument abschließend mit close() Methode der PDDocument Klasse wie unten gezeigt.

doc.close();

Beispiel

Dieses Beispiel zeigt, wie Sie einer Seite in einem Dokument Inhalt hinzufügen. Hier erstellen wir ein Java-Programm zum Laden des genannten PDF-Dokumentsmy_doc.pdf, die im Pfad gespeichert ist C:/PdfBox_Examples/und fügen Sie Text hinzu. Speichern Sie diesen Code in einer Datei mit NamenAddingContent.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();
   }
}

Kompilieren Sie die gespeicherte Java-Datei und führen Sie sie mit den folgenden Befehlen an der Eingabeaufforderung aus.

javac AddingContent.java 
java AddingContent

Bei der Ausführung fügt das obige Programm den angegebenen Text zum Dokument hinzu und zeigt die folgende Meldung an.

Content added

Wenn Sie das PDF-Dokument überprüfen new.pdf Im angegebenen Pfad können Sie beobachten, dass der angegebene Inhalt wie unten gezeigt zum Dokument hinzugefügt wird.