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.