iText - Guide rapide
Le format PDF (Portable Document Format) est un format de fichier qui permet de présenter les données de manière indépendante des logiciels d'application, du matériel et des systèmes d'exploitation. Chaque fichier PDF contient la description d'un document plat à mise en page fixe, y compris le texte, les polices, les graphiques et d'autres informations nécessaires pour l'afficher.
Il existe plusieurs bibliothèques disponibles pour créer et manipuler des documents PDF via des programmes, tels que -
Adobe PDF Library- Cette bibliothèque fournit des API dans des langages tels que C ++, .NET et Java. Grâce à cela, nous pouvons éditer, afficher, imprimer et extraire du texte à partir de documents PDF.
Formatting Objects Processor- Formateur d'impression open-source piloté par des objets de formatage XSL et un formateur indépendant de sortie. La principale cible de sortie est le PDF.
PDF Box- Apache PDFBox est une bibliothèque Java open source qui prend en charge le développement et la conversion de documents PDF. En utilisant cette bibliothèque, vous pouvez développer des programmes Java qui créent, convertissent et manipulent des documents PDF.
Jasper Reports - Il s'agit d'un outil de création de rapports Java qui génère des rapports dans un document PDF comprenant Microsoft Excel, RTF, ODT, des valeurs séparées par des virgules et des fichiers XML.
Qu'est-ce que iText?
Similaire à iText des logiciels énumérés ci-dessus est une bibliothèque Java PDF à l'aide de laquelle vous pouvez développer des programmes Java qui créent, convertissent et manipulent des documents PDF.
Caractéristiques d'iText
Voici les caractéristiques notables de la bibliothèque iText -
Interactive- iText vous fournit des classes (API) pour générer des documents PDF interactifs. En utilisant ces derniers, vous pouvez créer des cartes et des livres.
Adding bookmarks, page numbers, etc - En utilisant iText, vous pouvez ajouter des signets, des numéros de page et des filigranes.
Split & Merge - En utilisant iText, vous pouvez diviser un PDF existant en plusieurs PDF et également y ajouter / concaténer des pages supplémentaires.
Fill Forms - En utilisant iText, vous pouvez remplir des formulaires interactifs dans un document PDF.
Save as Image - En utilisant iText, vous pouvez enregistrer des fichiers PDF en tant que fichiers image, tels que PNG ou JPEG.
Canvas - La bibliothèque iText vous fournit une classe Canvas à l'aide de laquelle vous pouvez dessiner diverses formes géométriques sur un document PDF comme un cercle, une ligne, etc.
Create PDFs- En utilisant iText, vous pouvez créer un nouveau fichier PDF à partir de vos programmes Java. Vous pouvez également inclure des images et des polices.
Environnement IText
Suivez les étapes ci-dessous pour définir l'environnement iText sur Eclipse.
Step 1 - Installez Eclipse et ouvrez-y un nouveau projet comme indiqué ci-dessous.
Step 2 - Créer un iTextSample projet comme indiqué ci-dessous.
Step 3- Cliquez avec le bouton droit sur le projet et convertissez-le en projet Maven comme indiqué ci-dessous. Une fois que vous l'avez converti en projet Maven, il vous donnera unpom.xmloù vous devez mentionner les dépendances requises. Par la suite, lejar les fichiers de ces dépendances seront automatiquement téléchargés dans votre projet.
Step 4 - Maintenant, dans le pom.xml du projet, copiez et collez le contenu suivant (dépendances pour l'application iText) et actualisez le projet.
Using pom.xml
Convertissez le projet en projet Maven et ajoutez le contenu suivant à son pom.xml.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>SanthoshExample</groupId>
<artifactId>SanthoshExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- always needed -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>kernel</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>io</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>layout</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>forms</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>pdfa</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>sign</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>barcodes</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>font-asian</artifactId>
<version>7.0.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>hyph</artifactId>
<version>7.0.2</version>
</dependency>
</dependencies>
</project>
Enfin, si vous observez les dépendances Maven, vous pouvez observer que toutes les jar les fichiers ont été téléchargés.
Voyons maintenant comment créer un document PDF à l'aide de la bibliothèque iText.
Création d'un document PDF vide
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Voici les étapes pour créer un document PDF vide.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le rédacteur de documents pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/sample.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Ajouter une page vide
le addNewPage() méthode de la PdfDocument La classe est utilisée pour créer une page vide dans le document PDF.
Ajoutez une page vide au document PDF créé à l'étape précédente comme indiqué ci-dessous.
// Adding an empty page
pdfDoc.addNewPage();
Étape 4: Création d'un objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 5: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Voici le programme Java qui montre la création d'un document PDF. Il crée un document PDF avec le nomsample.pdf, y ajoute une page vide et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom create_PDF.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
public class create_PDF {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/sample.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Adding a new page
pdfDoc.addNewPage();
// Creating a Document
Document document = new Document(pdfDoc);
// Closing the document
document.close();
System.out.println("PDF Created");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac create_PDF.java
java create_PDF
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
PDF created
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Puisqu'il s'agit d'un document vide, si vous essayez d'ouvrir ce document, il affichera un message d'erreur, comme illustré dans la capture d'écran suivante.
Dans ce chapitre, nous verrons comment créer un document PDF avec AreaBreak en utilisant la bibliothèque iText.
Créer un AreaBreak
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter un saut de zone au document, vous devez instancier leAreaBreak classe et add cet objet à documenter en utilisant le add() méthode.
Voici les étapes pour créer un document PDF vide avec AreaBreak.
Étape 1: Création d'un objet PdfWriter
le PdfWriter classe représente le Doc Writer pour un PDF, cette classe appartient au package com.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne représentant le chemin où vous devez créer un PDF, à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingAreaBreak.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), alors chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocument class est la classe qui représente le document PDF dans iText, cette classe appartient au package com.itextpdf.kernel.pdf. Pour instancier cette classe (en mode écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments comme la page, la police, la pièce jointe, le gestionnaire d'événements en utilisant les méthodes respectives fournies par sa classe.
Étape 3: Création d'un objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Saut de zone
le AreaBreak la classe appartient au package com.itextpdf.layout.element. Lors de l'instanciation de cette classe, la zone de contexte actuelle se terminera et une nouvelle sera créée avec la même taille (au cas où nous utiliserions le constructeur par défaut).
Instancier le AreaBreak classe comme indiqué ci-dessous.
// Creating an Area Break
AreaBreak aB = new AreaBreak();
Étape 5: Ajout de AreaBreak
Ajouter le areabreak objet créé à l'étape précédente à l'aide du add() méthode de la classe Document, comme indiqué ci-dessous.
// Adding area break to the PDF
document.add(aB);
Étape 6: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment créer un document PDF avec AreaBreak à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingAreaBreak.pdf, ajoute un areabreak à lui, et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec le nom AddingAreaBreak.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.AreaBreak;
public class AddingAreaBreak {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addingAreaBreak.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document by passing PdfDocument object to its constructor
Document document = new Document(pdf);
// Creating an Area Break
AreaBreak aB = new AreaBreak();
// Adding area break to the PDF
document.add(aB);
// Closing the document
document.close();
System.out.println("Pdf created");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingAreaBreak.java
java AddingAreaBreak
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Pdf Created
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment créer un document PDF et y ajouter un paragraphe à l'aide de la bibliothèque iText.
Créer un paragraphe
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter un paragraphe au document, vous devez instancier leParagraph classe et ajoutez cet objet au document en utilisant le add() méthode.
Voici les étapes pour créer un document PDF contenant un paragraphe.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le rédacteur de documents pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingParagraph.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsque l'objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Créer un PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de la classe Document
le Document classe du package com.itextpdf.layoutest l'élément racine. Lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instanciez la classe Document en passant l'objet de la classe PdfDocument créé dans les étapes précédentes comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Paragraphe
le ParagraphLa classe représente un bloc autonome d'informations textuelles et graphiques. Il appartient au packagecom.itextpdf.layout.element.
Instancier le Paragraph class en passant le contenu du texte sous forme de chaîne à son constructeur, comme indiqué ci-dessous.
String para = "Welcome to Tutorialspoint.";
// Creating an Area Break
Paragraph para = new Paragraph (para);
Étape 5: Ajouter un paragraphe
Ajouter le Paragraph objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding area break to the PDF
document.add(para);
Étape 6: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment créer un document PDF et y ajouter un paragraphe à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingParagraph.pdf, y ajoute un paragraphe et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec le nom AddingParagraph.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
public class AddingParagraph {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addingParagraph.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
String para1 = "Tutorials Point originated from the idea that there exists
a class of readers who respond better to online content and prefer to learn
new skills at their own pace from the comforts of their drawing rooms.";
String para2 = "The journey commenced with a single tutorial on HTML in 2006
and elated by the response it generated, we worked our way to adding fresh
tutorials to our repository which now proudly flaunts a wealth of tutorials
and allied articles on topics ranging from programming languages to web designing
to academics and much more.";
// Creating Paragraphs
Paragraph paragraph1 = new Paragraph(para1);
Paragraph paragraph2 = new Paragraph(para2);
// Adding paragraphs to document
document.add(paragraph1);
document.add(paragraph2);
// Closing the document
document.close();
System.out.println("Paragraph added");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingParagraph.java
java AddingParagraph
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Paragraph added
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment créer un document PDF et y ajouter une liste à l'aide de la bibliothèque iText.
Créer une liste
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter une liste au document, vous devez instancier leList classe et ajoutez cet objet au document en utilisant le add() méthode.
Voici les étapes pour créer un document PDF et y ajouter une liste.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingList.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsque l'objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocument class est la classe qui représente le document PDF dans iText, cette classe appartient au package com.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Liste
le Listclass représente une série d'objets délimités verticalement. Il appartient au packagecom.itextpdf.layout.element.
Instancier le List classe comme indiqué ci-dessous.
// Creating a list
List list = new List();
Étape 5: Ajout d'éléments à la liste
Ajouter du contenu au list objet utilisant le add() méthode de la List class en passant des valeurs String, comme indiqué ci-dessous.
// Add elements to the list
list.add("Java");
list.add("JavaFX");
list.add("Apache Tika");
list.add("OpenCV");
Étape 6: Ajout de la liste au document
Ajouter le list objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding list to the document
document.add(list);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment créer un document PDF et y ajouter une liste à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingList.pdf, y ajoute une liste et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec un nom AddingList.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.Paragraph;
public class AddingList {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addngList.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a Paragraph
Paragraph paragraph = new Paragraph("Tutorials Point provides the following tutorials");
// Creating a list
List list = new List();
// Add elements to the list
list.add("Java");
list.add("JavaFX");
list.add("Apache Tika");
list.add("OpenCV");
list.add("WebGL");
list.add("Coffee Script");
list.add("Java RMI");
list.add("Apache Pig");
// Adding paragraph to the document
document.add(paragraph);
// Adding list to the document
document.add(list);
// Closing the document
document.close();
System.out.println("List added");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingList.java
java AddingList
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
List added
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment créer un document PDF et y ajouter un tableau à l'aide de la bibliothèque iText.
Ajouter une table à un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre de son constructeur. Ensuite, pour ajouter un tableau au document, vous devez instancier leTable classe et ajoutez cet objet au document en utilisant le add() méthode.
Voici les étapes pour créer un document PDF avec un tableau.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instancier le PdfWriter class en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingTable.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsque l'objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. Un des constructeurs de cette classe accepte un objet de la classePdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Table
le Tableclass représente une grille bidimensionnelle remplie de cellules classées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.
Instancier le Table classe comme indiqué ci-dessous.
// Creating a table object
float [] pointColumnWidths = {150F, 150F, 150F};
Table table = new Table(pointColumnWidths);
Étape 5: Ajout de cellules au tableau
Créer un cell objet en instanciant le Cell classe du package com.itextpdf.layout.element. Ajoutez le contenu de la cellule à l'aide duadd() méthode de cette classe.
Enfin, pour ajouter cette cellule au tableau, appelez le addCell() méthode de la Table classe et passer le cell objet comme paramètre de cette méthode, comme indiqué ci-dessous.
// Adding cell 1 to the table
Cell cell1 = new Cell(); // Creating a cell
cell1.add("Name"); // Adding content to the cell
table.addCell(cell1); // Adding cell to the table
// Adding cell 2 to the table Cell
cell2 = new Cell(); // Creating a cell
cell2.add("Raju"); // Adding content to the cell
table.addCell(cell2); // Adding cell to the table
Étape 6: Ajout d'un tableau au document
Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe comme indiqué ci-dessous.
// Adding list to the document
document.add(table);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment créer un document PDF et y ajouter un tableau à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingTable.pdf, y ajoute une table et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom AddingTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
public class AddingTable {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String dest = "C:/itextExamples/addingTable.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdf);
// Creating a table
float [] pointColumnWidths = {150F, 150F, 150F};
Table table = new Table(pointColumnWidths);
// Adding cells to the table
table.addCell(new Cell().add("Name"));
table.addCell(new Cell().add("Raju"));
table.addCell(new Cell().add("Id"));
table.addCell(new Cell().add("1001"));
table.addCell(new Cell().add("Designation"));
table.addCell(new Cell().add("Programmer"));
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Table created successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingTable.java
java AddingTable
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Table created successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment créer un document PDF et ajouter un tableau et formater le contenu d'une cellule du tableau à l'aide de la bibliothèque iText.
Formatage des cellules dans un tableau
Vous pouvez créer un PDF vide Documenten instanciant la classe Document. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter un tableau au document, vous devez instancier leTable classe et ajoutez cet objet au document en utilisant le add()méthode. Vous pouvez mettre en forme le contenu d'une cellule dans un tableau à l'aide des méthodes duCell classe.
Voici les étapes pour mettre en forme le contenu d'une cellule dans un tableau.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingBackground.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le PDFDocument dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instancier le PdfDocument classe en passant le créé ci-dessus PdfWriter object à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois par PdfDocument objet est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements en utilisant les méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Table
le Tableclass représente une grille bidimensionnelle remplie de cellules, triées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.
Instanciez la classe Table comme indiqué ci-dessous.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Étape 5: Création de cellules
Créer un cell objet en instanciant le Cell classe du package com.itextpdf.layout.element. Ajoutez le contenu de la cellule à l'aide duadd() méthode de la Cell classe, comme indiqué ci-dessous.
// Adding cell 1 to the table
Cell cell1 = new Cell(); // Creating a cell
cell1.add("Name"); // Adding content to the cell
// Adding cell 2 to the table
Cell cell2 = new Cell(); // Creating a cell
cell2.add("Raju"); // Adding content to the cell
Étape 6: Ajout d'un arrière-plan à la cellule
Une fois que vous avez créé la cellule et ajouté du contenu, vous pouvez mettre en forme la cellule. Par exemple, vous pouvez définir son arrière-plan, aligner le texte à l'intérieur de la cellule, changer la couleur du texte, etc., en utilisant différentes méthodes de la classe de cellule telles quesetBackgroundColor(), setBorder(), setTextAlignment().
Vous pouvez définir la couleur d'arrière-plan, la bordure et l'alignement du texte sur la cellule créée à l'étape précédente, comme indiqué ci-dessous.
c1.setBackgroundColor(Color.DARK_GRAY); // Setting background color to cell1
c1.setBorder(Border.NO_BORDER); // Setting border to cell1
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment to cell1
Étape 7: Ajout d'une cellule au tableau
Enfin, pour ajouter cette cellule au tableau, appelez le addCell() méthode de la Table classe et passer le cell objet comme paramètre de cette méthode, comme indiqué ci-dessous.
table.addCell(c1);
Étape 8: Ajout d'un tableau au document
Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe comme indiqué ci-dessous.
// Adding list to the document
document.add(table);
Étape 9: Fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment formater le contenu d'une cellule dans un tableau à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingBackground.pdf, y ajoute un tableau, formate le contenu de ses cellules et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom BackgroundToTable.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class BackgroundToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/addingBackground.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
// Populating row 1 and adding it to the table
Cell c1 = new Cell(); // Creating cell 1
c1.add("Name"); // Adding name to cell 1
c1.setBackgroundColor(Color.DARK_GRAY); // Setting background color
c1.setBorder(Border.NO_BORDER); // Setting border
c1.setTextAlignment(TextAlignment.CENTER); // Setting text alignment
table.addCell(c1); // Adding cell 1 to the table
Cell c2 = new
Cell();
c2.add("Raju");
c2.setBackgroundColor(Color.GRAY);
c2.setBorder(Border.NO_BORDER);
c2.setTextAlignment(TextAlignment.CENTER);
table.addCell(c2);
// Populating row 2 and adding it to the table
Cell c3 = new Cell();
c3.add("Id");
c3.setBackgroundColor(Color.WHITE);
c3.setBorder(Border.NO_BORDER);
c3.setTextAlignment(TextAlignment.CENTER);
table.addCell(c3);
Cell c4 = new Cell();
c4.add("001");
c4.setBackgroundColor(Color.WHITE);
c4.setBorder(Border.NO_BORDER);
c4.setTextAlignment(TextAlignment.CENTER);
table.addCell(c4);
// Populating row 3 and adding it to the table
Cell c5 = new Cell();
c5.add("Designation");
c5.setBackgroundColor(Color.DARK_GRAY);
c5.setBorder(Border.NO_BORDER);
c5.setTextAlignment(TextAlignment.CENTER);
table.addCell(c5);
Cell c6 = new Cell();
c6.add("Programmer");
c6.setBackgroundColor(Color.GRAY);
c6.setBorder(Border.NO_BORDER);
c6.setTextAlignment(TextAlignment.CENTER);
table.addCell(c6);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Background added successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac BackgroundToTable.java
java BackgroundToTable
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Background added successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment formater les bordures d'une cellule dans un tableau à l'aide de la bibliothèque iText.
Formatage des bordures d'une cellule
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Ensuite, pour ajouter un tableau au document, vous devez instancier le Table classe et ajoutez cet objet au document en utilisant le add() méthode.
Vous pouvez ajouter différents types de bordures comme DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, etc. avec différentes couleurs en utilisant le setBorder() méthode de la Cell classe.
Voici les étapes pour mettre en forme les bordures d'une cellule dans un tableau.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/coloredBorders.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le PDFDocument dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instancier le PdfDocument classe en passant le créé ci-dessus PdfWriter object à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Table
le Tableclass représente une grille bidimensionnelle remplie de cellules classées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.
Instancier le Table classe comme indiqué ci-dessous.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Étape 5: Création de cellules
Créez un objet cellule en instanciant le Cell classe du package com.itextpdf.layout.element ajouter le contenu de la cellule à l'aide du add() méthode de la Cell classe, comme indiqué ci-dessous.
// Adding cell 1 to the table
Cell cell1 = new Cell(); // Creating a cell
cell1.add("Name"); // Adding content to the cell
Étape 6: Formatage de la bordure de la cellule
La bibliothèque iText fournit diverses classes représentant la bordure telles que DashedBorder, SolidBorder, DottedBorder, DoubleBorder, RoundDotsBorder, etc.
Les constructeurs de ces classes acceptent deux paramètres: a color objet représentant la couleur de la bordure et un integer représentant la largeur de la bordure.
Choisissez l'un de ces types de bordure et instanciez la bordure respective en passant le color objet et un integer représentant la largeur, comme indiqué ci-dessous.
Border b1 = new DashedBorder(Color.RED, 3);
Maintenant, définissez la bordure de la cellule en utilisant le setBorder() méthode de la cellclasse. Cette méthode accepte un objet du typeBorder comme paramètre.
Définissez la bordure de la cellule en passant le ci-dessus créé Border objet comme paramètre du setBorder() méthode comme indiqué ci-dessous.
c1.setBorder(b1)
Enfin, pour ajouter cette cellule au tableau, appelez le addCell() méthode de la Table classe et passer le cell objet comme paramètre de cette méthode, comme indiqué ci-dessous.
table.addCell(c1);
Étape 7: Ajout d'un tableau au document
Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding list to the document
document.add(table);
Étape 8: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment formater la bordure d'une cellule dans un tableau à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomcoloredBorders.pdf, y ajoute un tableau, formate le contenu de ses cellules et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom FormatedBorders.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.border.Border;
import com.itextpdf.layout.border.DashedBorder;
import com.itextpdf.layout.border.DottedBorder;
import com.itextpdf.layout.border.DoubleBorder;
import com.itextpdf.layout.border.RoundDotsBorder;
import com.itextpdf.layout.border.SolidBorder;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class FormatedBorders {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/coloredBorders.pdf";
PdfWriter writer = new
PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
// Adding row 1 to the table
Cell c1 = new Cell();
// Adding the contents of the cell
c1.add("Name");
// Setting the back ground color of the cell
c1.setBackgroundColor(Color.DARK_GRAY);
// Instantiating the Border class
Border b1 = new DashedBorder(Color.RED, 3);
// Setting the border of the cell
c1.setBorder(b1);
// Setting the text alignment
c1.setTextAlignment(TextAlignment.CENTER);
// Adding the cell to the table
table.addCell(c1);
Cell c2 = new Cell();
c2.add("Raju");
c1.setBorder(new SolidBorder(Color.RED, 3));
c2.setTextAlignment(TextAlignment.CENTER);
table.addCell(c2);
// Adding row 2 to the table
Cell c3 = new Cell();
c3.add("Id");
c3.setBorder(new DottedBorder(Color.DARK_GRAY, 3));
c3.setTextAlignment(TextAlignment.CENTER);
table.addCell(c3);
Cell c4 = new Cell();
c4.add("001");
c4.setBorder(new DoubleBorder(Color.DARK_GRAY, 3));
c4.setTextAlignment(TextAlignment.CENTER);
table.addCell(c4);
// Adding row 3 to the table
Cell c5 = new Cell();
c5.add("Designation");
c5.setBorder(new RoundDotsBorder(Color.RED, 3));
c5.setTextAlignment(TextAlignment.CENTER);
table.addCell(c5);
Cell c6 = new Cell();
c6.add("Programmer");
c6.setBorder(new RoundDotsBorder(Color.RED, 3));
c6.setTextAlignment(TextAlignment.CENTER);
table.addCell(c6);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Borders added successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac FormatedBorders.java
java FormatedBorders
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Borders added successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une image à un tableau dans un document PDF à l'aide de la bibliothèque iText.
Ajout d'une image à un tableau
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter un tableau au document, vous devez instancier leTable classe et ajoutez cet objet au document en utilisant le add() méthode.
Pour ajouter une image à ce tableau, vous devez instancier le Cell classe, créez et un objet de l'image qui doit être ajouté, ajoutez l'image à la cell objet utilisant le add() méthode de la Cell classe.
Voici les étapes pour insérer une image dans la cellule d'un tableau.
Étape 1: Création d'un objet PdfWriter
le PdfWriter classe représente le Doc Writer pour un PDF, cette classe appartient au package com.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne représentant le chemin où vous devez créer un PDF, à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instancier le PdfDocument classe en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. Un des constructeurs de cette classe accepte un objet de la classePdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Table
le Tableclass représente une grille bidimensionnelle remplie de cellules, triées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.
Instancier le Table classe comme indiqué ci-dessous.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Étape 5: Création de la cellule
Créer un cell objet en instanciant le Cell classe du package com.itextpdf.layout, comme indiqué ci-dessous.
// Adding cell to the table
Cell cell = new Cell(); // Creating a cell
Étape 6: Création d'une image
Pour créer le image objet, tout d'abord, créez un ImageData objet utilisant le create() méthode de la ImageDataFactoryclasse. En tant que paramètre de cette méthode, transmettez un paramètre de chaîne représentant le chemin de l'image, comme indiqué ci-dessous.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Maintenant, instanciez le Image classe de la com.itextpdf.layout.elementpaquet. Lors de l'instanciation, passez leImageData objet créé ci-dessus, en tant que paramètre de son constructeur, comme indiqué ci-dessous.
// Creating an Image object
Image img = new Image(data);
Ajouter le image objet à la cellule en utilisant le add() méthode de la classe de cellules, comme indiqué ci-dessous.
// Adding image to the cell
cell.add(img.setAutoScale(true));
Étape 7: Ajout d'une cellule au tableau
Enfin, pour ajouter cette cellule au tableau, appelez le addCell() méthode de la Table classe et passer le cell objet comme paramètre de cette méthode, comme indiqué ci-dessous.
table.addCell(cell);
Étape 8: Ajout d'un tableau au document
Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding list to the document
document.add(table);
Étape 9: Fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une image à une cellule d'un tableau dans un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingImage.pdf, y ajoute un tableau, insère une image (javafxLogo.jpg) dans l'une de ses cellules et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec le nom AddingImageToTable.java.
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Image;
import com.itextpdf.layout.element.Table;
public class a3AddingImageToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {150f, 150f};
Table table = new Table(pointColumnWidths);
// Populating row 1 and adding it to the table
Cell cell1 = new Cell();
cell1.add("Tutorial ID");
table.addCell(cell1);
Cell cell2 = new Cell();
cell2.add("1");
table.addCell(cell2);
// Populating row 2 and adding it to the table
Cell cell3 = new Cell();
cell3.add("Tutorial Title");
table.addCell(cell3);
Cell cell4 = new Cell();
cell4.add("JavaFX");
table.addCell(cell4);
// Populating row 3 and adding it to the table
Cell cell5 = new Cell();
cell5.add("Tutorial Author");
table.addCell(cell5);
Cell cell6 = new Cell();
cell6.add("Krishna Kasyap");
table.addCell(cell6);
// Populating row 4 and adding it to the table
Cell cell7 = new Cell();
cell7.add("Submission date");
table.addCell(cell7);
Cell cell8 = new Cell();
cell8.add("2016-07-06");
table.addCell(cell8);
// Populating row 5 and adding it to the table
Cell cell9 = new Cell();
cell9.add("Tutorial Icon");
table.addCell(cell9);
// Creating the cell10
Cell cell10 = new Cell();
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
// Creating the image
Image img = new Image(data);
// Adding image to the cell10
cell10.add(img.setAutoScale(true));
// Adding cell110 to the table
table.addCell(cell10);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Image added to table successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingImageToTable.java
java AddingImageToTable
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Image added to table successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter un tableau imbriqué à un tableau dans un document PDF à l'aide de la bibliothèque iText.
Ajout de tableaux imbriqués dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Ensuite, pour ajouter un tableau au document, vous devez instancier leTable classe et ajoutez cet objet au document en utilisant le add() méthode.
Pour ajouter un tableau à ce tableau, vous devez créer un autre tableau (tableau imbriqué) et le transmettre à l'objet cellule à l'aide du add() méthode de la Cell classe.
Voici les étapes pour insérer un tableau dans la cellule d'un tableau.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingNestedTable.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classe PdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Table
le Tableclass représente une grille bidimensionnelle remplie de cellules, triées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.
Instancier le Table classe comme indiqué ci-dessous.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Étape 5: Création de la cellule
Créer un cell objet en instanciant le Cell classe du package com.itextpdf.layout, comme indiqué ci-dessous.
// Adding cell to the table
Cell contact = new Cell(); // Creating a cell
Étape 6: Création d'une table imbriquée
Après avoir créé le cell, créez un tableau imbriqué et remplissez ses cellules, comme indiqué ci-dessous.
// Creating nested table for contact
float [] pointColumnWidths2 = {150f, 150f};
Table nestedTable = new Table(pointColumnWidths2);
// Populating row 1 and adding it to the nested table
Cell nested1 = new Cell();
nested1.add("Phone");
nestedTable.addCell(nested1);
Cell nested2 = new Cell();
nested2.add("9848022338");
nestedTable.addCell(nested2);
// Populating row 2 and adding it to the nested table
Cell nested3 = new Cell();
nested3.add("email");
nestedTable.addCell(nested3);
Cell nested4 = new Cell();
nested4.add("[email protected]");
nestedTable.addCell(nested4);
// Populating row 3 and adding it to the nested table
Cell nested5 = new Cell();
nested5.add("Address");
nestedTable.addCell(nested5);
Cell nested6 = new Cell();
nested6.add("Hyderabad");
nestedTable.addCell(nested6);
Étape 7: Ajout d'un tableau imbriqué à la cellule
Maintenant, ajoutez la table imbriquée créée ci-dessus à la cellule de la table parent (conteneur) à l'aide du add() méthode de la Cellclasse. Et ajoutez cette cellule à la table parent à l'aide de laaddCell() méthode de la Table classe, comme indiqué ci-dessous.
contact.add(nestedTable);
table.addCell(contact);
Étape 8: Ajout d'un tableau au document
Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding list to the document
document.add(table);
Étape 9: Fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter un tableau à une cellule d'un tableau (tableau imbriqué) dans un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingNestedTable.pdf, y ajoute un tableau, insère un autre tableau dans l'une de ses cellules et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec le nom AddNestedTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Table;
public class a4AddNestedTablesPdf {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/addingNestedTable.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths1 = {150f, 150f};
Table table = new Table(pointColumnWidths1);
// Populating row 1 and adding it to the table
Cell cell1 = new Cell();
cell1.add("Name");
table.addCell(cell1);
Cell cell2 = new Cell();
cell2.add("Raju");
table.addCell(cell2);
// Populating row 2 and adding it to the table
Cell cell3 = new Cell();
cell3.add("Id");
table.addCell(cell3);
Cell cell4 = new Cell();
cell4.add("1001");
table.addCell(cell4);
// Populating row 3 and adding it to the table
Cell cell5 = new Cell();
cell5.add("Designation");
table.addCell(cell5);
Cell cell6 = new Cell();
cell6.add("Programmer");
table.addCell(cell6);
// Creating nested table for contact
float [] pointColumnWidths2 = {150f, 150f};
Table nestedTable = new Table(pointColumnWidths2);
// Populating row 1 and adding it to the nested table
Cell nested1 = new Cell();
nested1.add("Phone");
nestedTable.addCell(nested1);
Cell nested2 = new Cell();
nested2.add("9848022338");
nestedTable.addCell(nested2);
// Populating row 2 and adding it to the nested table
Cell nested3 = new Cell();
nested3.add("email");
nestedTable.addCell(nested3);
Cell nested4 = new Cell();
nested4.add("[email protected]");
nestedTable.addCell(nested4);
// Populating row 3 and adding it to the nested table
Cell nested5 = new Cell();
nested5.add("Address");
nestedTable.addCell(nested5);
Cell nested6 = new Cell();
nested6.add("Hyderabad");
nestedTable.addCell(nested6);
// Adding table to the cell
Cell cell7 = new Cell();
cell7.add("Contact");
table.addCell(cell7);
Cell cell8 = new Cell();
cell8.add(nestedTable);
table.addCell(cell8);
// Adding table to the document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Nested Table Added successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddNestedTable.java
java AddNestedTable
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Nested Table Added successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une liste à un tableau dans un document PDF à l'aide de la bibliothèque iText.
Ajout de listes à un tableau dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre de son constructeur. Ensuite, pour ajouter un tableau au document, vous devez instancier leTable classe et ajoutez cet objet au document en utilisant le add() méthode.
Pour ajouter un list à la table, vous devez instancier le List classe de la com.itextpdf.layout.element emballage et insérez-le dans le cell objet utilisant le add() méthode de la Cell classe.
Voici les étapes pour ajouter une liste à la cellule d'un tableau.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le rédacteur de documents pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous
// Creating a PdfWriter
String dest = "C:/itextExamples/addingObjects.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au package com.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instancier le PdfDocument classe en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Table
le Tableclass représente une grille bidimensionnelle remplie de cellules, triées en lignes et en colonnes. Il appartient au packagecom.itextpdf.layout.element.
Instancier le Table classe comme indiqué ci-dessous.
// Creating a table
float [] pointColumnWidths = {200F, 200F};
Table table = new Table(pointColumnWidths);
Étape 5: Création de la cellule
Créer un cell objet en instanciant le Cell classe du package com.itextpdf.layout, comme indiqué ci-dessous.
// Adding cell to the table
Cell listCell = new Cell(); // Creating a cell
Étape 6: Création d'un objet Liste
Après avoir créé la cellule, créez un list objet en instanciant le List classe du package com.itextpdf.layout.element. Créez les éléments de liste en instanciant leListItem classe et ajoutez les éléments créés à l'aide du add() méthode de la List classe, comme indiqué ci-dessous.
List list = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list.add(item1);
list.add(item2);
list.add(item3);
Étape 7: Ajouter une liste à la cellule d'un tableau
Maintenant, ajoutez la liste créée ci-dessus à la cellule du tableau en utilisant le add()méthode de la classe Cell. Et ajoutez cette cellule au tableau à l'aide de laaddCell() méthode de la Table classe, comme indiqué ci-dessous.
listCell.add(list);
table.addCell(listCell);
Étape 8: Ajout d'un tableau au document
Ajouter le table objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding list to the document
document.add(table);
Étape 9: Fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une liste à une cellule d'un tableau dans un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingObjects.pdf, y ajoute un tableau, insère une liste dans l'une de ses cellules et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom AddingListsToTable.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.List;
import com.itextpdf.layout.element.ListItem;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;
public class AddingListsToTable {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String file = "C:/itextExamples/addingObjects.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a table
float [] pointColumnWidths = {300F, 300F};
Table table = new Table(pointColumnWidths);
// Adding row 1 to the table
Cell c1 = new Cell();
c1.add("Java Related Tutorials");
c1.setTextAlignment(TextAlignment.LEFT);
table.addCell(c1);
List list1 = new List();
ListItem item1 = new ListItem("JavaFX");
ListItem item2 = new ListItem("Java");
ListItem item3 = new ListItem("Java Servlets");
list1.add(item1);
list1.add(item2);
list1.add(item3);
Cell c2 = new Cell();
c2.add(list1);
c2.setTextAlignment(TextAlignment.LEFT);
table.addCell(c2);
// Adding row 2 to the table
Cell c3 = new Cell();
c3.add("No SQL Databases");
c3.setTextAlignment(TextAlignment.LEFT);
table.addCell(c3);
List list2 = new List();
list2.add(new ListItem("HBase"));
list2.add(new ListItem("Neo4j"));
list2.add(new ListItem("MongoDB"));
Cell c4 = new Cell();
c4.add(list2);
c4.setTextAlignment(TextAlignment.LEFT);
table.addCell(c4);
// Adding Table to document
doc.add(table);
// Closing the document
doc.close();
System.out.println("Lists added to table successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingListsToTable.java
java AddingListsToTable
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Lists added to table successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une image à un document PDF à l'aide de la bibliothèque iText.
Ajouter une image à un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre, à son constructeur. Pour ajouter une image au PDF, créez un objet de l'image qui doit être ajouté et ajoutez-le à l'aide duadd() méthode de la Document classe.
Voici les étapes pour ajouter une image au document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document Document
document = new Document(pdfDoc);
Étape 4: Création d'un objet Image
Pour créer le image objet, tout d'abord, créez un ImageData objet utilisant le create() méthode de la ImageDataFactoryclasse. En tant que paramètre de cette méthode, transmettez un paramètre de chaîne représentant le chemin de l'image, comme indiqué ci-dessous.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Maintenant, instanciez le Image classe de la com.itextpdf.layout.elementpaquet. Lors de l'instanciation, transmettez les éléments créés ci-dessusImageData objet en tant que paramètre de son constructeur, comme indiqué ci-dessous.
// Creating an Image object
Image img = new Image(data);
Étape 5: Ajout d'une image au document
Ajoutez l'objet image créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding image to the document
document.add(img);
Étape 6: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une image à un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomaddingImage.pdf, y ajoute une image et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec un nom AddingImage.java.
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class AddingImage {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/addingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating an ImageData object
String imFile = "C:/itextExamples/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image added");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac AddingImage.java
java AddingImage
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Image added
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment définir la position d'une image dans un document PDF à l'aide de la bibliothèque iText.
Définition de la position de l'image
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour ajouter une image au pdf, créez et un objet de l'image qui doit être ajouté et ajoutez-le en utilisant le add() méthode de la Documentclasse. Vous pouvez insérer l'image à la position souhaitée sur le document en utilisant la méthodesetFixedPosition() du Image classe.
Voici les étapes pour définir la position d'une image dans le document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/positionOfImage.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Image
Pour créer l'objet image, créez tout d'abord un ImageData objet utilisant le create() méthode de la ImageDataFactoryclasse. En tant que paramètre de cette méthode, transmettez un paramètre de chaîne représentant le chemin de l'image, comme indiqué ci-dessous.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Maintenant, instanciez le Image classe de la com.itextpdf.layout.elementpaquet. Lors de l'instanciation, passez leImageData objet en tant que paramètre de son constructeur, comme indiqué ci-dessous.
// Creating an Image object
Image img = new Image(data);
Étape 5: réglage de la position de l'image
Vous pouvez définir la position de l'image dans un document PDF à l'aide du setFixedPosition()méthode de l'image. Définissez la position de l'image sur les coordonnées (100, 250) sur le document à l'aide de cette méthode, comme indiqué ci-dessous.
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
Étape 6: Ajout d'une image au document
Maintenant, ajoutez l'objet image, créé à l'étape précédente, en utilisant le add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding image to the document
document.add(img);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment définir une image à une position souhaitée sur un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nompositionOfImage.pdf, y ajoute une image, la place plus près du centre de la page et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom SettingPosition.java.
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class SettingPosition {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/EXAMPLES/itextExamples/3images/positionOfImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdfDoc);
// Creating an ImageData object
String imFile = "C:/EXAMPLES/itextExamples/3images/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image added");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.
javac SettingPosition.java
java SettingPosition
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Image added
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment mettre à l'échelle une image dans un document PDF à l'aide de la bibliothèque iText.
Mise à l'échelle d'une image dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour ajouter une image au PDF, créez un objet de l'image qui doit être ajouté et ajoutez-le à l'aide du add() méthode de la Documentclasse. Vous pouvez mettre à l'échelle une image à l'aide dusetAutoScale() méthode.
Voici les étapes pour mettre à l'échelle une image qui existe sur le document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/autoScale.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instancier le PdfDocument classe en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Image
Pour créer un objet image, créez tout d'abord un ImageData objet utilisant le create() méthode de la ImageDataFactoryclasse. En tant que paramètre de cette méthode, transmettez un paramètre de chaîne représentant le chemin de l'image, comme indiqué ci-dessous.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Maintenant, instanciez le Image classe de la com.itextpdf.layout.elementpaquet. Lors de l'instanciation, passez leImageData objet en tant que paramètre de son constructeur, comme indiqué ci-dessous.
// Creating an Image object
Image img = new Image(data);
Étape 5: mise à l'échelle d'une image
Vous pouvez mettre à l'échelle une image à l'aide du setAutoScale() méthode.
// Setting the position of the image to the center of the page
image.setFixedPosition(100, 250);
Étape 6: Ajout d'une image au document
Maintenant, ajoutez le image objet créé à l'étape précédente à l'aide du add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding image to the document
document.add(img);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment mettre à l'échelle une image en fonction de la taille du document sur un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomautoScale.pdf, y ajoute une image, la met à l'échelle par rapport aux dimensions de la page, l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec un nom SettingAutoScale.java.
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class SettingAutoScale {
public static void main(String args[]) throws Exception{
// Creating a PdfWriter
String dest = "C:/itextExamples/positionOfImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdfDoc);
// Creating an ImageData object
String imFile = "C:/itextExamples/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Setting the position of the image to the center of the page
image.setFixedPosition(100,250);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image Scaled");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.
javac SettingAutoScale.java
java SettingAutoScale
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Image Scaled
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment insérer une image dans un document PDF et comment faire pivoter cette image, en utilisant les fonctions disponibles dans la bibliothèque iText.
Rotation d'une image dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour ajouter une image au PDF, créez un objet de l'image qui doit être ajouté et ajoutez-le à l'aide du add() méthode de la Documentclasse. Vous pouvez faire pivoter une image à l'aide dusetRotationAngle() méthode.
Voici les étapes pour faire pivoter une image dans un document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/rotatingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet Image
Pour créer un objet image, créez tout d'abord un ImageData objet utilisant le create()méthode de la ImageDataFactoryclasse. En tant que paramètre de cette méthode, transmettez un paramètre de chaîne représentant le chemin de l'image, comme indiqué ci-dessous.
// Creating an ImageData object
String imageFile = "C:/itextExamples/javafxLogo.jpg";
ImageData data = ImageDataFactory.create(imageFile);
Maintenant, instanciez le Image classe de la com.itextpdf.layout.elementpaquet. Lors de l'instanciation, passez leImageData object, en tant que paramètre de son constructeur, comme indiqué ci-dessous.
// Creating an Image object
Image img = new Image(data);
Étape 5: faire pivoter une image
Vous pouvez faire pivoter une image à l'aide du setRotationAngle()méthode. Pour cette méthode, vous devez passer un entier représentant l'angle de rotation selon lequel vous souhaitez faire pivoter l'image.
// Rotating the image
image.setRotationAngle(45);
Étape 6: Ajout d'une image au document
Maintenant, ajoutez l'objet image créé à l'étape précédente en utilisant le add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding image to the document
document.add(img);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment faire pivoter une image d'un angle donné sur un document PDF à l'aide de la bibliothèque iText.
Il crée un document PDF avec le nom rotatingImage.pdf, y ajoute une image, la fait pivoter et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec le nom RotatingImage.java.
import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class RotatingImage {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/rotatingImage.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdfDoc);
// Creating an ImageData object
String imFile = "C:/itextExamples/logo.jpg";
ImageData data = ImageDataFactory.create(imFile);
// Creating an Image object
Image image = new Image(data);
// Rotating the image
image.setRotationAngle(45);
// Adding image to the document
document.add(image);
// Closing the document
document.close();
System.out.println("Image rotated");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac RotatingImage.java
java RotatingImage
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Image Rotated
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une annotation textuelle à un document PDF à l'aide de la bibliothèque iText.
Création d'une annotation textuelle dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet de PdfTextAnnotation classe et ajoutez ceci à la PdfPage.
Voici les étapes pour utiliser l'annotation de texte dans le document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/textAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instancier le PdfDocument classe en passant le PdfWriter object à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. Un des constructeurs de cette classe accepte un objet de la classePdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfAnnotation
le PdfAnnotation classe du package com.itextpdf.kernel.pdf.annot représente la superclasse de toutes les annotations.
Parmi ses classes dérivées, PdfTextAnnotationclass représente l'annotation de texte. Créez un objet de cette classe comme indiqué ci-dessous.
// Creating PdfAnnotation
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation ann = new PdfTextAnnotation(rect);
Étape 5: Définition de la couleur de l'annotation
Définissez la couleur de l'annotation à l'aide du setColor() méthode de la PdfAnnotationclasse. À cette méthode, passez lecolor objet représentant la couleur de l'annotation en tant que paramètre.
// Setting color to the annotation
ann.setColor(Color.GREEN);
Étape 6: Définition du titre et du contenu de l'annotation
Définissez le titre et le contenu de l'annotation à l'aide du setTitle() et setContents() méthodes de la PdfAnnotation classe respectivement, comme indiqué ci-dessous.
// Setting title to the annotation
ann.setTitle(new PdfString("Hello"));
// Setting contents of the annotation
ann.setContents("Hi welcome to Tutorialspoint.");
Étape 7: Ajout de l'annotation à une page
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la classe PdfDocument et ajoutez l'annotation ci-dessus à l'aide de la addAnnotation() méthode de PdfPage classe, comme indiqué ci-dessous.
// Creating a new page PdfPage page =
pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
Étape 8: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une annotation de texte à un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomtextAnnotation.pdf, y ajoute une annotation textuelle et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom TextAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfTextAnnotation;
import com.itextpdf.layout.Document;
public class TextAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/textAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating PdfTextAnnotation object
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation ann = new PdfTextAnnotation(rect);
// Setting color to the annotation
ann.setColor(Color.GREEN);
// Setting title to the annotation
ann.setTitle(new PdfString("Hello"));
// Setting contents of the annotation
ann.setContents("Hi welcome to Tutorialspoint.");
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.
javac TextAnnotation.java
java TextAnnotation
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Annotation added successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une annotation de lien à un document PDF à l'aide de la bibliothèque iText.
Création d'une annotation de lien dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet de la classe PdfTextAnnotation et l'ajouter à la PdfPage.
Voici les étapes pour utiliser l'annotation de texte dans un document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instancier le PdfWriter class en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/linkAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant le PdfWriter object à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. Un des constructeurs de cette classe accepte un objet de la classePdfDocument.
Instancier le Document classe en passant l'objet de la classe PdfDocument créée dans les étapes précédentes, comme illustré ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfAnnotation
le PdfAnnotation classe du package com.itextpdf.kernel.pdf.annot représente la superclasse de toutes les annotations.
Parmi ses classes dérivées, PdfLinkAnnotationclass représente l'annotation du lien. Créez un objet de cette classe, comme indiqué ci-dessous.
// Creating a PdfLinkAnnotation object
Rectangle rect = new Rectangle(0, 0);
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);
Étape 5: Définition de l'action de l'annotation
Définissez une action sur l'annotation à l'aide du setAction() méthode de la PdfLinkAnnotation classe, comme indiqué ci-dessous.
// Setting action of the annotation
PdfAction action = PdfAction.createURI("http: // www.tutorialspoint.com/");
annotation.setAction(action);
Étape 6: création d'un lien
Créez un lien en instanciant le Link classe du package com.itextpdf.layout.element, comme indiqué ci-dessous.
// Creating a link
Link link = new Link("Click here", annotation);
Étape 7: Ajout de l'annotation de lien à un paragraphe
Créez un nouveau paragraphe en instanciant le Paragraph classe et ajoutez le lien créé à l'étape précédente à l'aide du add() méthode de cette classe, comme indiqué ci-dessous.
// Creating a paragraph
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");
// Adding link to paragraph
paragraph.add(link.setUnderline());
Étape 8: Ajout d'un paragraphe au document
Ajoutez le paragraphe au document en utilisant le add() méthode de la Document classe, comme indiqué ci-dessous.
// Adding paragraph to document
document.add(paragraph);
Étape 9: Fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une annotation de lien à un document PDF à l'aide de la bibliothèque iText.
Il crée un document PDF avec le nom linkAnnotation.pdf, y ajoute une annotation de lien et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom LinkAnnotation.java.
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.action.PdfAction;
import com.itextpdf.kernel.pdf.annot.PdfLinkAnnotation;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Link;
import com.itextpdf.layout.element.Paragraph;
public class LinkAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/linkAnnotation.pdf";
PdfWriter writer = new
PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a PdfLinkAnnotation object
Rectangle rect = new Rectangle(0, 0);
PdfLinkAnnotation annotation = new PdfLinkAnnotation(rect);
// Setting action of the annotation
PdfAction action = PdfAction.createURI("http:// www.tutorialspoint.com/");
annotation.setAction(action);
// Creating a link
Link link = new Link("Click here", annotation);
// Creating a paragraph
Paragraph paragraph = new Paragraph("Hi welcome to Tutorialspoint ");
// Adding link to paragraph
paragraph.add(link.setUnderline());
// Adding paragraph to document
document.add(paragraph);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac LinkAnnotation.java
java LinkAnnotation
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Annotation added successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une annotation de ligne à un document PDF à l'aide de la bibliothèque iText.
Création d'une annotation de ligne dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre, à son constructeur.
Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet de PdfTextAnnotation classe et ajoutez ceci à la PdfPage.
Voici les étapes pour utiliser l'annotation de texte dans le document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne représentant le chemin où vous devez créer un PDF, à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/lineAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le PDFDocument dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe, le gestionnaire d'événements en utilisant les méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. Un des constructeurs de cette classe accepte un objet de la classePdfDocument.
Instanciez la classe Document en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfAnnotation
le PdfAnnotation classe du package com.itextpdf.kernel.pdf.annot représente la superclasse de toutes les annotations.
Parmi ses classes dérivées, PdfLineAnnotationclass représente l'annotation de ligne. Créez un objet de cette classe comme indiqué ci-dessous.
// Creating PdfAnnotation
Rectangle rect = new Rectangle(20, 800, 0, 0);
PdfAnnotation annotation = new PdfLineAnnotation(rect);
Étape 5: Définition de la couleur de l'annotation
Définissez la couleur de l'annotation à l'aide du setColor() méthode de la PdfAnnotationclasse. À cette méthode, passez l'objet couleur représentant la couleur de l'annotation en tant que paramètre.
// Setting color to the annotation
annotation.setColor(Color.BLUE);
Étape 6: Définition du titre et du contenu de l'annotation
Définissez le titre et le contenu de l'annotation à l'aide du setTitle() et setContents() méthodes de la PdfAnnotation classe respectivement, comme indiqué ci-dessous.
// Setting title to the PdfLineAnnotation
annotation.setTitle(new PdfString("iText"));
// Setting contents of the PdfLineAnnotation
annotation.setContents("Hi welcome to Tutorialspoint");
Étape 7: Ajout de l'annotation à une page
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocument et ajoutez l'annotation créée ci-dessus à l'aide de la méthode addAnnotation () de la classe PdfPage, comme indiqué ci-dessous.
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(annotation);
Étape 8: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une annotation de ligne à un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomlineAnnotation.pdf, y ajoute une annotation de ligne et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec un nom LineAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfLineAnnotation;
import com.itextpdf.layout.Document;
public class LineAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/lineAnnotations.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document
Document document = new Document(pdf);
// Creating a PdfPage
PdfPage page = pdf.addNewPage();
// creating PdfLineAnnotation object
Rectangle rect = new Rectangle(0, 0);
float[] floatArray = new float[]{
20, 790, page.getPageSize().getWidth() - 20, 790
};
PdfAnnotation annotation = new PdfLineAnnotation(rect, floatArray);
// Setting color of the PdfLineAnnotation
annotation.setColor(Color.BLUE);
// Setting title to the PdfLineAnnotation
annotation.setTitle(new PdfString("iText"));
// Setting contents of the PdfLineAnnotation
annotation.setContents("Hi welcome to Tutorialspoint");
// Adding annotation to the page
page.addAnnotation(annotation);
// Closing the document
document.close();
System.out.println("Annotation added successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac LineAnnotation.java
java LineAnnotation
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Annotation added successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une annotation de balisage de texte à un document PDF à l'aide de la bibliothèque iText.
Création d'une annotation de balisage dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocumentobjet en tant que paramètre de son constructeur. Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet dePdfTextAnnotation classe et ajoutez ceci à la PdfPage.
Voici les étapes pour utiliser l'annotation de texte dans le document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/markupAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. Un des constructeurs de cette classe accepte un objet de la classePdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfAnnotation
le PdfAnnotation classe du package com.itextpdf.kernel.pdf.annot représente la superclasse de toutes les annotations.
Parmi ses classes dérivées, PdfTextMarkupAnnotationclass représente l'annotation de balisage de texte. Créez un objet de cette classe comme indiqué ci-dessous.
// Creating a PdfTextMarkupAnnotation object
Rectangle rect = new Rectangle(105, 790, 64, 10);
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation = PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
Étape 5: Définition de la couleur de l'annotation
Définissez la couleur de l'annotation à l'aide du setColor() méthode de la PdfAnnotationclasse. À cette méthode, passez l'objet couleur représentant lecolor de l'annotation en tant que paramètre.
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
Étape 6: Définition du titre et du contenu de l'annotation
Définissez le titre et le contenu de l'annotation à l'aide du setTitle() et setContents() méthodes de la PdfAnnotation classe respectivement.
// Setting title to the annotation
annotation.setTitle(new PdfString("Hello!"));
// Setting contents to the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
Étape 7: Ajout de l'annotation à une page
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocument classe et ajoutez l'annotation créée ci-dessus en utilisant le addAnnotation() méthode de la classe PdfPage, comme indiqué ci-dessous.
// Creating a new Pdfpage
PdfPage pdfPage = pdfDoc.addNewPage();
// Adding annotation to a page in a PDF
pdfPage.addAnnotation(annotation);
Étape 8: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une annotation de balisage de texte à un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nommarkupAnnotation.pdf, y ajoute une annotation de balisage de texte et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom MarkupAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfTextMarkupAnnotation;
import com.itextpdf.layout.Document;
public class MarkupAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String file = "C:/itextExamples/markupAnnotation.pdf";
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a PdfTextMarkupAnnotation object
Rectangle rect = new Rectangle(105, 790, 64, 10);
float[] floatArray = new float[]{169, 790, 105, 790, 169, 800, 105, 800};
PdfAnnotation annotation =
PdfTextMarkupAnnotation.createHighLight(rect,floatArray);
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
// Setting title to the annotation
annotation.setTitle(new PdfString("Hello!"));
// Setting contents to the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
// Creating a new Pdfpage
PdfPage pdfPage = pdfDoc.addNewPage();
// Adding annotation to a page in a PDF
pdfPage.addAnnotation(annotation);
// Closing the document
doc.close();
System.out.println("Annotation added successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac MarkupAnnotation.java
java MarkupAnnotation
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Annotation added successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment ajouter une annotation circulaire à un document PDF à l'aide de la bibliothèque iText.
Création d'une annotation de cercle dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour utiliser l'annotation de texte dans votre document PDF, vous devez créer un objet de la classe PdfTextAnnotation et l'ajouter à la Pdfpage.
Voici les étapes pour utiliser l'annotation de texte dans le document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instancier le PdfWriter class en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/circleAnnotation.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfAnnotation
le PdfAnnotation classe du package com.itextpdf.kernel.pdf.annot représente la superclasse de toutes les annotations.
Parmi ses classes dérivées, PdfCircleAnnotationclass représente l'annotation du cercle. Créez un objet de cette classe comme indiqué ci-dessous.
// Creating a PdfCircleAnnotation object Rectangle
rect = new Rectangle(150, 770, 50, 50);
PdfAnnotation annotation = new PdfCircleAnnotation(rect);
Étape 5: Définition de la couleur de l'annotation
Définissez la couleur de l'annotation à l'aide du setColor() méthode de la PdfAnnotationclasse. À cette méthode, passez l'objet couleur représentant la couleur de l'annotation en tant que paramètre.
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
Étape 6: Définition du titre et du contenu de l'annotation
Définissez le titre et le contenu de l'annotation à l'aide du setTitle() et setContents() méthodes de la PdfAnnotation classe respectivement.
// Setting title to the annotation
annotation.setTitle(new PdfString("circle annotation"));
// Setting contents of the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
Étape 7: Ajout de l'annotation à une page
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocument classe et ajoutez l'annotation créée ci-dessus en utilisant le addAnnotation() méthode de la classe PdfPage, comme indiqué ci-dessous.
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(ann);
Étape 8: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment ajouter une annotation circulaire à un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomcircleAnnotation.pdf, lui ajoute une annotation circulaire et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom PdfCircleAnnotation.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfString;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.annot.PdfAnnotation;
import com.itextpdf.kernel.pdf.annot.PdfCircleAnnotation;
import com.itextpdf.layout.Document;
public class CircleAnnotation {
public static void main(String args[]) throws Exception {
// Creating a PdfDocument object
String file = "C:/itextExamples// circleAnnotation.pdf";
PdfDocument pdf = new PdfDocument(new PdfWriter(file));
// Creating a Document object
Document doc = new Document(pdf);
// Creating a PdfCircleAnnotation object
Rectangle rect = new Rectangle(150, 770, 50, 50);
PdfAnnotation annotation = new PdfCircleAnnotation(rect);
// Setting color to the annotation
annotation.setColor(Color.YELLOW);
// Setting title to the annotation
annotation.setTitle(new PdfString("circle annotation"));
// Setting contents of the annotation
annotation.setContents(new PdfString("Hi welcome to Tutorialspoint"));
// Creating a new page
PdfPage page = pdf.addNewPage();
// Adding annotation to a page in a PDF
page.addAnnotation(annotation);
// Closing the document
doc.close();
System.out.println("Annotation added successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac PdfCircleAnnotation.java
java PdfCircleAnnotation
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Annotation added successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment dessiner un arc sur un document PDF à l'aide de la bibliothèque iText.
Dessiner un arc sur un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour dessiner un arc sur un PdfDocument, instanciez le PdfCanvas classe du package com.itextpdf.kernel.pdf.canvas et créez un arc en utilisant le arc() méthode de cette classe.
Voici les étapes pour dessiner un arc sur un document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingArc.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsque l'objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfCanvas
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocument classe.
Instancier le PdfCanvas objet du colis com.itextpdf.kernel.pdf.canvas en passant le ci-dessus créé PdfPage object au constructeur de cette classe, comme indiqué ci-dessous.
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
Étape 5: Dessiner l'arc
Dessinez l'arc à l'aide du arc() méthode de la Canvas classe et remplissez-la en utilisant le fill() méthode, comme indiqué ci-dessous.
// Drawing an arc
canvas.arc(50, 50, 300, 545, 0, 360);
// Filling the arc
canvas.fill();
Étape 6: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment dessiner un arc dans un document PDF à l'aide de la bibliothèque iText.
Il crée un document PDF avec le nom drawingArc.pdf, y dessine un arc et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom DrawingArc.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
public class DrawingArc {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingArc.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
// Drawing an arc
canvas.arc(50, 50, 300, 545, 0, 360);
// Filling the arc
canvas.fill();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac DrawingArc.java
java DrawingArc
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Object drawn on pdf successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment dessiner une ligne sur un document PDF à l'aide de la bibliothèque iText.
Dessiner une ligne sur un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre, à son constructeur.
Pour dessiner une ligne sur un PdfDocument Instanciez le PdfCanvas classe du package com.itextpdf.kernel.pdf.canvas et créez une ligne en utilisant le moveTo() et lineTO() méthodes de cette classe.
Voici les étapes pour tracer une ligne sur le document pdf.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingLine.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter créé ci-dessus à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfCanvas
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocument classe.
Instancier le PdfCanvas objet du colis com.itextpdf.kernel.pdf.canvas en passant le ci-dessus créé PdfPage object au constructeur de cette classe, comme indiqué ci-dessous.
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
Étape 5: Tracer la ligne
Définissez le point initial de la ligne à l'aide du moveTO() méthode de la Canvas classe, comme indiqué ci-dessous.
// Initial point of the line
canvas.moveTo(100, 300);
Maintenant, tracez une ligne de ce point à un autre point en utilisant le lineTo() méthode, comme indiqué ci-dessous.
// Drawing the line
canvas.lineTo(500, 300);
Étape 6: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment dessiner une ligne dans un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomdrawingLine.pdf, y dessine un arc et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec un nom DrawingLine.java.
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
public class DrawingLine {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingLine.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
// Initial point of the line
canvas.moveTo(100, 300);
// Drawing the line
canvas.lineTo(500, 300);
// Closing the path stroke
canvas.closePathStroke();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac DrawingLine.java
java DrawingLine
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Object drawn on pdf successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment dessiner un cercle sur un document PDF en utilisant la bibliothèque iText.
Dessiner un cercle sur un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour dessiner un cercle sur un PdfDocument, instanciez le PdfCanvas classe du package com.itextpdf.kernel.pdf.canvas et invoquez le circle() méthode de cette classe.
Voici les étapes pour dessiner un cercle sur un document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingCircle.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Création d'un objet PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme illustré ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création d'un objet PdfCanvas
Créer un nouveau PdfPage classe en utilisant le addNewPage() méthode de la PdfDocumentclasse. Instancier lePdfCanvas objet du colis com.itextpdf.kernel.pdf.canvas en passant le PdfPage object au constructeur de cette classe, comme indiqué ci-dessous.
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
Étape 5 Réglage de la couleur
Réglez la couleur du cercle à l'aide du setColor() méthode de la Canvas classe, comme indiqué ci-dessous.
// Setting color to the circle
Color color = Color.GREEN;
canvas.setColor(color, true);
Étape 6: dessiner le cercle
Dessinez un cercle en invoquant le circle() méthode de la Canvas, comme indiqué ci-dessous.
// creating a circle
canvas.circle(300, 400, 200);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment dessiner un cercle sur un document PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomdrawingCircle.pdf, y dessine un cercle et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom DrawingCircle.java.
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.layout.Document;
public class DrawingCircle {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter
String dest = "C:/itextExamples/drawingCircle.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating a new page
PdfPage pdfPage = pdfDoc.addNewPage();
// Creating a PdfCanvas object
PdfCanvas canvas = new PdfCanvas(pdfPage);
// Setting color to the circle
Color color = Color.GREEN;
canvas.setColor(color, true);
// creating a circle
canvas.circle(300, 400, 200);
// Filling the circle
canvas.fill();
// Closing the document
doc.close();
System.out.println("Object drawn on pdf successfully");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.
javac DrawingCircle.java
java DrawingCircle
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Object drawn on pdf successfully
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment définir la couleur et la police du texte dans un document PDF à l'aide de la bibliothèque iText.
Définition de la police du texte dans un PDF
Vous pouvez créer un document PDF vide en instanciant le Documentclasse. Lors de l'instanciation de cette classe, vous devez passer unPdfDocument objet en tant que paramètre de son constructeur.
Pour ajouter un paragraphe au document, vous devez instancier le Paragraph classe et ajoutez cet objet au document en utilisant le add()méthode. Vous pouvez définir la couleur et la police du texte à l'aide des méthodessetFontColor() et setFont() respectivement.
Voici les étapes pour définir la couleur et la police du texte dans un document PDF.
Étape 1: Création d'un objet PdfWriter
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter
String dest = "C:/itextExamples/fonts.pdf";
PdfWriter writer = new PdfWriter(dest);
Lorsqu'un objet de ce type est passé à un PdfDocument (classe), chaque élément ajouté à ce document sera écrit dans le fichier spécifié.
Étape 2: Créer un PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Instanciez la classe PdfDocument en passant l'objet PdfWriter à son constructeur, comme indiqué ci-dessous.
// Creating a PdfDocument
PdfDocument pdfDoc = new PdfDocument(writer);
Une fois qu'un objet PdfDocument est créé, vous pouvez ajouter divers éléments tels que la page, la police, la pièce jointe et le gestionnaire d'événements à l'aide des méthodes respectives fournies par sa classe.
Étape 3: Création de la classe Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instanciez la classe Document en passant l'objet de la classe PdfDocument créé dans les étapes précédentes, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(pdfDoc);
Étape 4: Création de texte
Créez le texte en instanciant le Text classe du package com.itextpdf.layout.element comme indiqué ci-dessous.
// Creating text object
Text text = new Text("Tutorialspoint");
Étape 5: Définition de la police et de la couleur du texte
Créer le PdfFont objet utilisant le createFont() méthode de la classe PdfFontFactory du forfait com.itextpdf.kernel.font comme indiqué ci-dessous
// Setting font of the text PdfFont
font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
Maintenant, définissez la police sur le texte en utilisant le setFont() méthode de la Textclasse à cette méthode. Passe lePdfFont objet en tant que paramètre, comme indiqué ci-dessous.
text1.setFont(font);
Pour définir la couleur du texte, appelez le setFontColor() méthode de la classe Text, comme indiqué ci-dessous.
// Setting font color
text.setFontColor(Color.GREEN);
Étape 6: Ajout de texte au paragraphe
Créer un Paragraph objet de classe et ajoutez le texte créé ci-dessus en utilisant son add() méthode, comme indiqué ci-dessous.
// Creating Paragraph
Paragraph paragraph = new Paragraph();
// Adding text to the paragraph
paragraph.add(text);
Étape 7: Ajout d'un paragraphe au document
Ajoutez le paragraphe au document en utilisant le add() méthode de la Document classe, comme indiqué ci-dessous.
doc.add(paragraph1)
Étape 8: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment définir la couleur et la police du texte dans un PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomfonts.pdf, met en forme le texte et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom FormatingTheText.java.
import com.itextpdf.io.font.FontConstants;
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Text;
public class FormatingTheText {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/fonts.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfDocument object
PdfDocument pdf = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdf);
// Creating text object
Text text1 = new Text("Tutorialspoint");
// Setting font of the text
PdfFont font = PdfFontFactory.createFont(FontConstants.HELVETICA_BOLD);
text1.setFont(font);
// Setting font color
text1.setFontColor(Color.GREEN);
// Creating text object
Text text2 = new Text("Simply Easy Learning");
text2.setFont(PdfFontFactory.createFont(FontConstants.HELVETICA));
// Setting font color
text2.setFontColor(Color.BLUE);
// Creating Paragraph
Paragraph paragraph1 = new Paragraph();
// Adding text1 to the paragraph
paragraph1.add(text1);
paragraph1.add(text2);
// Adding paragraphs to the document
doc.add(paragraph1);
doc.close();
System.out.println("Text added to pdf ..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac FormatingTheText.java
java FormatingTheText
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
Text added to pdf ..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.
Dans ce chapitre, nous verrons comment mettre à l'échelle une image sur un document PDF à l'aide de la bibliothèque iText.
Réduire le contenu d'un PDF
Voici les étapes pour réduire le contenu d'une page PDF à l'aide de la bibliothèque iText.
Étape 1: Création d'un objet PdfWriter et PdfReader
le PdfWriterLa classe représente le DocWriter pour un PDF. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Le constructeur de cette classe accepte une chaîne, représentant le chemin du fichier où le PDF doit être créé.
Instanciez la classe PdfWriter en passant une valeur de chaîne (représentant le chemin où vous devez créer un PDF) à son constructeur, comme indiqué ci-dessous.
// Creating a PdfWriter object
String dest = "C:/itextExamples/shrinking.pdf";
PdfWriter writer = new PdfWriter(dest);
Pour lire les données d'un pdf existant, créez un PdfReader objet comme indiqué ci-dessous.
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
Étape 2: Création d'un ou plusieurs objets PdfDocument
le PdfDocumentclass est la classe qui représente le document PDF dans iText. Cette classe appartient au packagecom.itextpdf.kernel.pdf. Pour instancier cette classe (en écriture), vous devez passer un objet de la classePdfWriter à son constructeur.
Créez des documents PDF source et de destination en passant le PdfWriter et PdfReader objets aux constructeurs, comme indiqué ci-dessous.
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
Étape 3: Ouverture d'une page à partir du PDF existant
Obtenez une page du PDF source à l'aide de getPage() méthode de la PdfPageclasse. À l'aide de cet objet, obtenez la taille de la page du document source, comme indiqué ci-dessous.
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
// Getting the page size
Rectangle orig = origPage.getPageSizeWithRotation();
Étape 4: Réduire le contenu du pdf source
En utilisant le getScaleInstance() méthode de la AffineTransform classe, réduisez le contenu d'une page du document source, comme indiqué ci-dessous.
// Shrink original page content using transformation matrix
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
page.getPageSize().getWidth()/ orig.getWidth()/2,
page.getPageSize().getHeight()/ orig.getHeight()/2);
Étape 5: Copie de la page
Concaténer le affine transform matrix, créé à l'étape précédente, à la matrice du canvas objet du document PDF de destination, comme indiqué ci-dessous.
// Concatenating the affine transform matrix to the current matrix
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
Maintenant, ajoutez la copie de page au canvas objet du PDF de destination vers le document source, comme indiqué ci-dessous.
// Add the object to the canvas
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
canvas.addXObject(pageCopy, 0, 0);
Étape 6: Création de l'objet Document
le Document classe du package com.itextpdf.layoutest l'élément racine lors de la création d'un PDF autonome. L'un des constructeurs de cette classe accepte un objet de la classe PdfDocument.
Instancier le Document class en passant l'objet de la classe PdfDocument, comme indiqué ci-dessous.
// Creating a Document
Document document = new Document(destpdf);
Étape 7: fermeture du document
Fermez le document à l'aide du close() méthode de la Document classe, comme indiqué ci-dessous.
// Closing the document
document.close();
Exemple
Le programme Java suivant montre comment réduire le contenu d'une page PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomshrinkingPDF.pdf, réduit l'image dans le pdf et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec un nom ShrinkingPDF.java.
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
import com.itextpdf.layout.Document;
public class ShrinkPDF {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/shrinking.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
// Getting the page size
Rectangle orig = origPage.getPageSizeWithRotation();
// Adding a page to destination Pdf
PdfPage page = destpdf.addNewPage();
// Scaling the image in a Pdf page
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
page.getPageSize().getWidth()/orig.getWidth()/2,
page.getPageSize().getHeight()/ orig.getHeight()/2);
// Shrink original page content using transformation matrix
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
// Add the object to the canvas
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
canvas.addXObject(pageCopy, 0, 0);
// Creating a Document object
Document doc = new Document(destpdf);
// Closing the document
doc.close();
System.out.println("Table created successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac ShrinkingPDF.java
java ShrinkingPDF
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
Table created successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé comme indiqué ci-dessous.
Le programme Java suivant montre comment tuiler le contenu d'une page PDF sur différentes pages à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomtilingPdfPages.pdf et l'enregistre dans le chemin C:/itextExamples/.
Enregistrez ce code dans un fichier avec le nom TilingPDFPages.java.
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
public class TilingPDFPages {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/tilingPdfPages.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
// Getting the page size
Rectangle orig = origPage.getPageSizeWithRotation();
// Getting the size of the page
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
// Tile size
Rectangle tileSize = PageSize.A4.rotate();
AffineTransform transformationMatrix =
AffineTransform.getScaleInstance(tileSize.getWidth() / orig.getWidth() *
2f, tileSize.getHeight() / orig.getHeight() * 2f);
// The first tile
PdfPage page =
destpdf.addNewPage(PageSize.A4.rotate());
PdfCanvas canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, 0, -orig.getHeight() / 2f);
// The second tile
page = destpdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, -orig.getWidth() / 2f, -orig.getHeight() / 2f);
// The third tile
page = destpdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, 0, 0);
// The fourth tile
page = destpdf.addNewPage(PageSize.A4.rotate());
canvas = new PdfCanvas(page);
canvas.concatMatrix(transformationMatrix);
canvas.addXObject(pageCopy, -orig.getWidth() / 2f, 0);
// closing the documents
destpdf.close();
srcPdf.close();
System.out.println("PDF created successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac TilingPDFPages.java
java TilingPDFPages
Lors de l'exécution, le programme ci-dessus crée un document PDF, affichant le message suivant.
PDF created successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous -
Le programme Java suivant montre comment effectuer N-up sur une page PDF à l'aide de la bibliothèque iText. Il crée un document PDF avec le nomnUppingPDF.pdf et l'enregistre dans le chemin C:/itextExamples/
Enregistrez ce code dans un fichier avec le nom NUppingPDF.java.
import com.itextpdf.kernel.geom.AffineTransform;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.geom.Rectangle;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfPage;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
public class NUppingPDF {
public static void main(String args[]) throws Exception {
// Creating a PdfWriter object
String dest = "C:/itextExamples/nUppingPDF.pdf";
PdfWriter writer = new PdfWriter(dest);
// Creating a PdfReader
String src = "C:/itextExamples/pdfWithImage.pdf";
PdfReader reader = new PdfReader(src);
// Creating a PdfDocument objects
PdfDocument destpdf = new PdfDocument(writer);
PdfDocument srcPdf = new PdfDocument(reader);
// Opening a page from the existing PDF
PdfPage origPage = srcPdf.getPage(1);
Rectangle orig = origPage.getPageSize();
PdfFormXObject pageCopy = origPage.copyAsFormXObject(destpdf);
// N-up page
PageSize nUpPageSize = PageSize.A4.rotate();
PdfPage page = destpdf.addNewPage(nUpPageSize);
PdfCanvas canvas = new PdfCanvas(page);
// Scale page
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
nUpPageSize.getWidth() / orig.getWidth() /
2f, nUpPageSize.getHeight() / orig.getHeight() / 2f);
canvas.concatMatrix(transformationMatrix);
// Add pages to N-up page
canvas.addXObject(pageCopy, 0, orig.getHeight());
canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight());
canvas.addXObject(pageCopy, 0, 0);
canvas.addXObject(pageCopy, orig.getWidth(), 0);
// closing the documents
destpdf.close();
srcPdf.close();
System.out.println("PDF created successfully..");
}
}
Compilez et exécutez le fichier Java enregistré à partir de l'invite de commande à l'aide des commandes suivantes -
javac NUppingPDF.java
java NUppingPDF
Lors de l'exécution, le programme ci-dessus crée un document PDF affichant le message suivant.
PDF created successfully..
Si vous vérifiez le chemin spécifié, vous pouvez trouver le document PDF créé, comme indiqué ci-dessous.