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.