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.