itextDémarrer avec itext


Remarques

Si vous regardez la création de PDF, vous trouverez deux approches différentes:

  • Les concepteurs graphiques utilisent des applications de bureau telles que Adobe Acrobat ou Adobe InDesign pour créer un document dans un processus manuel ou semi-annuel.
  • Dans un autre contexte, les documents PDF sont créés par programmation, en utilisant une API pour produire des fichiers PDF directement à partir d'applications logicielles, sans intervention humaine ou avec un minimum. Parfois, le document est d'abord créé dans un format intermédiaire (XML, HTML, etc.), puis converti en PDF.

Ces différentes approches exigent des produits logiciels différents.

La même chose vaut pour la manipulation de PDF.

  • Vous pouvez mettre à jour un PDF manuellement dans des outils tels que Adobe Acrobat,
  • Il existe également des outils permettant de remplir automatiquement les formulaires en fonction des informations d’une base de données.

iText est un outil axé sur l'automatisation.

Qu'est-ce que iText?

iText est un SDK développé pour permettre aux développeurs de faire les choses suivantes (et bien plus encore):

  • Générer des documents et des rapports basés sur des données provenant d'un fichier XML ou d'une base de données
  • Créez des cartes et des livres en exploitant de nombreuses fonctionnalités interactives disponibles en PDF
  • Ajouter des signets, numéros de page, filigranes et autres fonctionnalités aux documents PDF existants
  • Fractionner ou concaténer des pages à partir de fichiers PDF existants
  • Remplir des formulaires interactifs
  • Signer numériquement les documents PDF
  • Servir des documents PDF générés ou manipulés dynamiquement sur un navigateur Web

iText n'est pas un outil d'utilisateur final. Vous devez créer iText dans vos propres applications pour pouvoir automatiser le processus de création et de manipulation des PDF.

Quand utiliser iText?

En règle générale, iText est utilisé dans des projets répondant à l'une des exigences suivantes:

  • Le contenu n'est pas disponible à l'avance: il est calculé en fonction des données saisies par l'utilisateur ou de la base de données en temps réel.
  • Les fichiers PDF ne peuvent pas être produits manuellement en raison du volume important de contenu: un grand nombre de pages ou de documents.
  • Les documents doivent être créés en mode sans assistance, par lots.
  • Le contenu doit être personnalisé ou personnalisé. Par exemple, le nom de l'utilisateur final doit figurer sur plusieurs pages.

Vous rencontrerez souvent ces exigences dans les applications Web, où le contenu doit être servi dynamiquement à un navigateur. Normalement, vous diffusez ces informations sous forme de code HTML, mais pour certains documents, le format PDF est préférable au code HTML pour une meilleure qualité d’impression, pour une présentation identique sur diverses plates-formes, pour des raisons de sécurité comme PAdES, PDF / A ou PDF / UA) ou pour réduire la taille du fichier.

Versions

Version Première sortie Dernière version Fin de vie
0,30 - 0,99 2000-02-14 2003-05-01 2005-12-31
1,00 - 1,4,8 2003-06-25 2006-12-19 2009-12-31
2.00 - 2.1.7 2003-02-15 2009-07-07 2012-12-31
5.0.0 - 5.5.11 2009-12-07 2017-03-20 2018-12-31
7.0.0 - ... 2016-05-03 ... 2025-12-31

Bonjour le monde

Ceci est 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 )

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


Et c'est 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 )

Il y a beaucoup d'autres exemples à parcourir depuis cette page.


Ces deux exemples se ressemblent beaucoup. Les avantages de l'API iText 7 redessinée deviendront évidents dès que l'on se penchera sur des exemples moins triviaux. Il vous suffit donc de naviguer dans l'exemple de code source à partir des liens ci-dessus et de comparer.

Installation ou configuration

iText pour Java

L'importation des fichiers iText depuis le référentiel Maven Central est la meilleure façon d'installer iText 7. Ces vidéos simples expliquent comment faire en utilisant différents IDE:

Dans ces didacticiels, nous définissons uniquement le kernel et les projets de layout en tant que dépendances. Maven importe également automatiquement le io jar car les paquets du kernel dépendent des paquets io .

Voici la liste de base des dépendances pour l'utilisation standard de 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écessaires 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 de iText 7, vous pouvez avoir besoin de jars supplémentaires:

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

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

Si vous voulez utiliser ces pots, vous devez les ajouter à votre CLASSPATH, tout comme vous ajouteriez un autre pot.

Des fonctionnalités supplémentaires pour iText 7 sont disponibles via des modules complémentaires, livrés sous forme de licence 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 juridique du site Web iText ).

Vous pouvez importer une telle clé de licence à l'aide du module de clé de licence. Vous pouvez obtenir le fichier 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 dans iText sont des sources fermées. Par exemple, si vous souhaitez utiliser PdfCalligraph , vous avez besoin du module de typography . Ce module ne fonctionnera pas sans une clé de licence officielle.

iText pour C #

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