Premiers pas avec itext

Bonjour le monde

Voici un programme très simple pour créer un PDF en utilisant iText 7 / Java :

//Initialize writer
PdfWriter writer = new PdfWriter(dest);

//Initialize document
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc);

//Add paragraph to the document
doc.add(new Paragraph("Hello World!"));

//Close document
doc.close();

([Listing_01_01_HelloWorld.java][1])

Vous pouvez accéder à de nombreux autres exemples à partir de cette page.


Et voici un programme très simple pour créer un PDF en utilisant le précurseur iText 5.5.x / Java :

// step 1
Document document = new Document();
// step 2
PdfWriter.getInstance(document, new FileOutputStream(filename));
// step 3
document.open();
// step 4
document.add(new Paragraph("Hello World!"));
// step 5
document.close();

([HelloWorld.java][2])

Il existe également de nombreux autres exemples pour naviguer à partir de cette page.


Ces deux exemples se ressemblent assez. Les avantages de l’API iText 7 repensée deviendront cependant évidents dès que l’on commencera à regarder de plus près des exemples moins triviaux. Ainsi, naviguez simplement dans l’exemple de code source à partir des liens ci-dessus et comparez.

[1] : http://gitlab.itextsupport.com/itext7/samples/blob/develop/publications/book/src/test/java/com/itextpdf/samples/book/part1/chapter01/Listing_01_01_HelloWorld.java#L30 [2] : https://github.com/itext/book/blob/develop/src/part1/chapter01/HelloWorld.java#L44

Installation ou configuration

iText pour Java

L’importation des jars iText depuis le Central Maven Repository est le meilleur moyen d’installer iText 7. Ces vidéos simples expliquent comment procéder à l’aide de différents IDE :

Dans ces tutoriels, nous définissons uniquement les projets kernel et layout comme dépendances. Maven importe également automatiquement le jar io car les packages kernel dépendent des packages io.

Voici la liste de base des dépendances pour une utilisation standard d’iText 7 :

<dependencies>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>kernel</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>io</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>layout</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>forms</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdfa</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdftest</artifactId>
        <version>7.0.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.18</version>
    </dependency>
</dependencies>

Chaque dépendance correspond à un jar en Java et à une DLL en C#.

  • kernel et io : contiennent des fonctionnalités de bas niveau.
  • layout : contient des fonctionnalités de haut niveau.
  • forms : nécessaire pour tous les exemples AcroForm.
  • pdfa : nécessaire pour les fonctionnalités spécifiques à PDF/A.
  • pdftest : nécessaire pour les exemples qui sont également un test.

Pour une utilisation plus spécifique d’iText 7, vous aurez peut-être besoin de jars supplémentaires :

  • barcodes : utilisez-le si vous souhaitez créer des codes-barres.
  • hyph : utilisez ceci si vous voulez que le texte soit coupé.
  • font-asian : utilisez ceci si vous avez besoin de la fonctionnalité CJK (chinois/japonais/coréen)
  • sign : utilisez-le si vous avez besoin de la prise en charge des signatures numériques.

Tous les pots listés ci-dessus sont disponibles sous licence AGPL. Vous pouvez également télécharger ces jars dans un fichier ZIP hébergé sur Github : https://github.com/itext/itext7/releases

Si vous souhaitez utiliser ces pots, vous devez les ajouter à votre CLASSPATH, comme vous ajouteriez n’importe quel autre pot.

Des fonctionnalités supplémentaires d’iText 7 sont disponibles via des modules complémentaires, qui sont livrés sous forme de pots sous une licence commerciale. Si vous souhaitez utiliser l’un de ces modules complémentaires, ou si vous souhaitez utiliser iText 7 avec votre code propriétaire, vous devez obtenir une clé de licence commerciale pour iText 7 (voir la [section légale du site Web iText] (http ://itextpdf.com/legal)).

Vous pouvez importer une telle clé de licence à l’aide du module de clé de licence. Vous pouvez obtenir le pot de clé de licence comme ceci :

<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itext-licensekey</artifactId>
    <version>2.0.0</version>
    <scope>compile</scope>
</dependency>

Certaines fonctionnalités d’iText sont à source fermée. Par exemple, si vous souhaitez utiliser PdfCalligraph, vous avez besoin du module typography. Ce module ne fonctionnera pas sans clé de licence officielle.

iText pour C#

Vous pouvez télécharger un fichier ZIP contenant toutes les DLL disponibles sous l’AGPL. Pour plus d’informations sur ces DLL, veuillez lire la documentation Java.