PDFBox - Ajout de plusieurs lignes
Dans l'exemple fourni dans le chapitre précédent, nous avons expliqué comment ajouter du texte à une page dans un PDF, mais grâce à ce programme, vous ne pouvez ajouter que le texte qui tiendrait sur une seule ligne. Si vous essayez d'ajouter plus de contenu, tout le texte qui dépasse l'espace de ligne ne sera pas affiché.
Par exemple, si vous exécutez le programme ci-dessus dans le chapitre précédent en passant la chaîne suivante, seule une partie de celui-ci sera affichée.
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";
Remplace le string textde l'exemple du chapitre précédent avec la chaîne mentionnée ci-dessus et exécutez-la. Lors de l'exécution, vous recevrez la sortie suivante.
Si vous observez attentivement la sortie, vous pouvez remarquer que seule une partie de la chaîne est affichée.
Pour ajouter plusieurs lignes à un PDF, vous devez définir l'interlignage à l'aide du setLeading() méthode et passer à une nouvelle ligne en utilisant newline() méthode après avoir terminé chaque ligne.
Pas
Voici les étapes pour créer un document vide et ajouter du contenu à une page qu'il contient.
Étape 1: chargement d'un document existant
Vous pouvez charger un document existant à l'aide du load()méthode de la classe PDDocument. Par conséquent, instanciez cette classe et chargez le document requis comme indiqué ci-dessous.
File file = new File("Path of the document");
PDDocument doc = PDDocument.load(file);
Étape 2: Obtention de la page requise
Vous pouvez obtenir la page requise dans un document en utilisant le getPage()méthode. Récupérez l'objet de la page requise en passant son index à cette méthode comme indiqué ci-dessous.
PDPage page = doc.getPage(1);
Étape 3: Préparation du flux de contenu
Vous pouvez insérer différents types d'éléments de données à l'aide de l'objet de la classe nommée PDPageContentStream. Vous devez passer l'objet document et l'objet page au constructeur de cette classe, par conséquent, instancier cette classe en transmettant ces deux objets créés dans les étapes précédentes comme indiqué ci-dessous.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Étape 4: Commencer le texte
Lors de l'insertion de texte dans un document PDF, vous pouvez spécifier les points de début et de fin du texte à l'aide du beginText() et endText() méthodes de la PDPageContentStream classe comme indiqué ci-dessous.
contentStream.beginText();
………………………..
code to add text content
………………………..
contentStream.endText();
Par conséquent, commencez le texte en utilisant le beginText() méthode comme indiqué ci-dessous.
contentStream.beginText();
Étape 5: Définition de la position du texte
En utilisant le newLineAtOffset() méthode, vous pouvez définir la position sur le flux de contenu dans la page.
//Setting the position for the line
contentStream.newLineAtOffset(25, 700);
Étape 6: Définition de la police
Vous pouvez définir la police du texte sur le style souhaité à l'aide du setFont() méthode de la PDPageContentStream classe comme indiqué ci-dessous à cette méthode, vous devez transmettre le type et la taille de la police.
contentStream.setFont( font_type, font_size );
Étape 7: Définition de l'interlignage du texte
Vous pouvez définir l'interlignage du texte à l'aide du setLeading() méthode comme indiqué ci-dessous.
contentStream.setLeading(14.5f);
Étape 8: Insertion de plusieurs chaînes à l'aide de newline ()
Vous pouvez insérer plusieurs chaînes en utilisant le ShowText() méthode de la PDPageContentStream classe, en divisant chacun d'eux en utilisant le newline() méthode comme indiqué ci-dessous.
contentStream. ShowText(text1);
contentStream.newLine();
contentStream. ShowText(text2);
Étape 9: Terminer le texte
Après avoir inséré le texte, vous devez terminer le texte en utilisant le endText() méthode de la PDPageContentStream classe comme indiqué ci-dessous.
contentStream.endText();
Étape 10: fermeture de PDPageContentStream
Fermer la PDPageContentStream objet utilisant le close() méthode comme indiqué ci-dessous.
contentstream.close();
Étape 11: enregistrement du document
Après avoir ajouté le contenu requis, enregistrez le document PDF à l'aide du save() méthode de la PDDocument class comme indiqué dans le bloc de code suivant.
doc.save("Path");
Étape 12: Fermeture du document
Enfin, fermez le document à l'aide du close() méthode de la PDDocument classe comme indiqué ci-dessous.
doc.close();
Exemple
Cet exemple montre comment ajouter plusieurs lignes dans un PDF à l'aide de PDFBox. Enregistrez ce programme dans un fichier avec un nomAddMultipleLines.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();
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.
javac AddMultipleLines.java
java AddMultipleLines
Lors de l'exécution, le programme ci-dessus ajoute le texte donné au document et affiche le message suivant.
Content added
Si vous vérifiez le document PDF new.pdf dans le chemin spécifié, vous pouvez observer que le contenu donné est ajouté au document sur plusieurs lignes, comme indiqué ci-dessous.