APIs d'export en PDF

les objets de l'API iText

I. L'objet Chunk

L'objet Chunk est la plus petite partie de texte que l'on peut insérer dans un document. Les Chunk peuvent être utilisé afin de définir des blocs, ou pour construire des phrases et des paragraphes. Un Chunk est une chaîne de caractère avec une certaine police de caractère, un style et une taille. Tous les autres paramètres d'affichage sont à définir dans l'objet qui va contenir le Chunk.

La ligne suivante permet de créer un Chunk avec comme contenu Hello World écrit en rouge, italique et en police Courier de taille 20.

Chunk chunk = new Chunk("Hello world", FontFactory.getFont(FontFactory.COURIER, 20, Font.ITALIC, Color.BLACK));

Voici les différentes polices de caractères disponibles dans cette API:

II. L'objet Phrase

Une Phrase est une série de Chunk pour laquelle on a définit le leading (espacement entre deux lignes). Une Phrase a une police de caractère par défaut, cependant, il est possible de modifier la police des Chunk contenu dans la Phrase.


III. L'objet Paragraph

Un paragraph est une série de Chunk et/ou de Phrase. Tout comme pour l'objet Phrase, il est possible de définir le leading entre celles-ci. Il est également possible de déterminer l'indentation du paragraphe.
Il y a plusieurs moyen de construire un Paragraph.
Voici quelques exemples:

Paragraph p1 = new Paragraph(new Chunk("1er paragraphe.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
Paragraph p2 = new Paragraph(new Phrase("2em paragraphe.", FontFactory.getFont(FontFactory.HELVETICA, 12)));
Paragraph p3 = new Paragraph("3em paragraphe.", FontFactory.getFont(FontFactory.HELVETICA, 12)); 

IV. l' Objet Anchor

L'objet Anchor permet de définir un lien hypertexte, par exemple vers un autre document. Cet objet dérive de l'objet Phrase et il est utilisé de la même façon.
Deux méthodes ont été rajouté afin de définir le nom et la référence de l'objet.

Anchor anchor = new Anchor("site web");
anchor.setReference("http://www.univ-mlv.fr/");
anchor.setName("website"); 
La méthode setName est utilisée pour la définition de liens internes.

V. L'objet List

Grâce au classes List et ListItem, il est possible d'ajouter des listes dans nos documents PDF. Il est posssible de choisir si l'on veut une liste ordonnée ou non.
Exemple de liste ordonnée:

List list = new List(true, 20);
list.add(new ListItem("Titre 1"));
list.add(new ListItem("Titre 2"));
list.add(new ListItem("Titre 3")); 

VII. L'objet Table

L'objet Table est un rectangle qui contient des objets Cell représentant une matrice. La matrice de la table n'est pas forcément une matrice m x n. En effet, elle peut contenir des trous ou des cellules plus grandes que l'unité.
La façon la plus commune de créer une table est de définir à l'avance le nombre de lignes et de colonnes que va contenir le tableau, comme dans l'exemple ci dessous.

Table aTable = new Table(2,2);
aTable.addCell("0.0");
aTable.addCell("0.1");
aTable.addCell("1.0");
aTable.addCell("1.1"); 

Cette table contient deux lignes et deux colonnes. Les cellules sont ajoutés automatiquement, commençant à la première ligne de la première colonne. lorsque la ligne est remplie, la prochaine celulle est insérée à la deuxième ligne de la première colonne et ainsi de suite. Il est également possible d'ajouter des cellules à une certaine position dans la table en le définissant comme ceci.
Table aTable = new Table(4,4);
aTable.setAutoFillEmptyCells(true);
aTable.addCell("2.2", new Point(2,2));
aTable.addCell("3.3", new Point(3,3));
aTable.addCell("2.1", new Point(2,1));
aTable.addCell("1.3", new Point(1,3));

Voici quelques paramètes de l'objet Table et de l'objet Cell:
Méthode
Objectif
setBorderWidth(int i)
Définir la largeur de la bordure
setBorderColor(Color c)
Définir la couleur de la bordure
setColspan(int i)
Définir le nombre de colonnes occupées par la cellule
setRowspan(int i)
Définir le nombre de lignes occupées par la cellule
setRowspan(int i)
Définir le nombre de lignes occupées par la cellule
setBackgroundColor(Color c)
Définir la couleur de fond de la cellule

Valid HTML 4.01!