PDFBox - Hinzufügen mehrerer Zeilen

In dem im vorherigen Kapitel bereitgestellten Beispiel haben wir erläutert, wie Sie einer Seite in einer PDF-Datei Text hinzufügen. Mit diesem Programm können Sie jedoch nur den Text hinzufügen, der in eine einzelne Zeile passt. Wenn Sie versuchen, mehr Inhalt hinzuzufügen, wird nicht der gesamte Text angezeigt, der den Zeilenabstand überschreitet.

Wenn Sie beispielsweise das obige Programm im vorherigen Kapitel ausführen, indem Sie die folgende Zeichenfolge übergeben, wird nur ein Teil davon angezeigt.

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

Ersetze das string textdes Beispiels im vorherigen Kapitel mit der oben genannten Zeichenfolge und führen Sie es aus. Bei der Ausführung erhalten Sie die folgende Ausgabe.

Wenn Sie die Ausgabe genau beobachten, können Sie feststellen, dass nur ein Teil der Zeichenfolge angezeigt wird.

Um einer PDF-Datei mehrere Zeilen hinzuzufügen, müssen Sie die führende Zeile mithilfe der festlegen setLeading() Methode und wechseln Sie mit newline() Methode nach Beendigung jeder Zeile.

Schritte

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 = PDDocument.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 genannten 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

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

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 PDPageContentStream Klasse 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: Einstellen der Textführung

Sie können den führenden Text mit der Taste einstellen setLeading() Methode wie unten gezeigt.

contentStream.setLeading(14.5f);

Schritt 8: Einfügen mehrerer Zeichenfolgen mit newline ()

Sie können mit der Zeichenfolge mehrere Zeichenfolgen einfügen ShowText() Methode der PDPageContentStream Klasse, indem Sie jeden von ihnen mit der teilen newline() Methode wie unten gezeigt.

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

Schritt 9: 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 10: Schließen des PDPageContentStream

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

contentstream.close();

Schritt 11: 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 12: 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 mit PDFBox mehrere Zeilen in eine PDF-Datei einfügen. Speichern Sie dieses Programm in einer Datei mit NamenAddMultipleLines.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();
   }
}

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

javac AddMultipleLines.java 
java AddMultipleLines

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 dem Dokument in mehreren Zeilen hinzugefügt wird, wie unten gezeigt.