Code XULES

Aujourd’hui, nous allons voir ITEXT une bibliothèque PDF à Java qui nous permet de créer, d’analyser, de modifier et de gérer des documents Dans le format PDF ITEXT n’est pas utilisé uniquement par Java est également utilisé dans .NET, Android et GAE pour fournir à ses applications avec pdf.

ITEXT LOGO

Qu’est-ce que Itext nous fournit?

IText est une bibliothèque PDF qui nous permet de créer, de s’adapter, de la révision et de la maintenance de documents dans le format de document PDF, certaines des caractéristiques principales sont les suivantes:

  • Générez des documents et des rapports extraits d’un fichier XML ou d’une base de données
  • Créer des cartes et des livres, incorporant des fonctionnalités interactives au format PDF
  • Ajouter des favoris, des numéros de page, des filigranes, et d’autres caractéristiques des documents PDF existants
    Split ou concaténate les pages des fichiers PDF existants
  • remplir des formulaires interactifs.
  • serveur généré de manière dynamique ou manipulent des documents PDF dans un navigateur Web.

Java Itext PDF – Création d’un PDF en Java avec IText

  1. Ajouter les librairies et la CRE Classe Masters
  2. Création du document et de Metadata
  3. Nous avons créé notre première page
  4. Ajouter plus d’articles de IText à notre PDF
  5. Utilisation des tables dans ITEXT: PDFPTABLE
  6. Résultat final (Code complet)
  7. Documentation utilisée

Logiciels et outils utilisés

  • NetBeans
  • Java
  • ITEXT PDF

Ajouter les librairies et créer une classe

Nous allons commencer à télécharger la dernière version de cette bibliothèque, vous pouvez accéder à Sourceforge ou le télécharger à partir de ce lien: Téléchargement de IText de Sourceforge.

Nous avons configuré le projet

Pour ce projet, nous allons utiliser NetBeans fournissant un soutien important pour le développement d’applications avec Java.

Nous avons ouvert Netbeans et nous recherchons la nouvelle option de projet, lorsque l’assistant a ouvert la sélection. Java > Application Java, nous ne vous donnerons aucun nom à notre projet et à son ubic ization.

Vous pouvez utiliser n’importe quel autre IDE pour Java, tout ce dont vous aurez besoin d’ajouter est d’ajouter les bibliothèques IText.

Nous créons une classe

pour créer un Nouvelle classe Nous nous tenons sur le projet et dans le menu contextuel, nous sélectionnons Nouveau > classe Java, nous allons présenter le nom de la classe et le paquet où nous souhaitons localiser, Dans mon cas:

  • Nom de la classe: GeneratePDFFILETTXT.JAVA
  • PACKAGE: ORG.XULESCODE.ITEXT

Ce code vise à être le plus simple possible, nous allons donc placer tout le code dans la méthode: Public Void CreatePDF (fichier pdfnewfile) pour pouvoir suivre en tant que script car nous créons un document PDF et une variables source et un emplacement pour une image que je vais Utilisez dans l’exemple:

package org.xulescode.itext;import com.itextpdf.*;import java.io.*; /** * Example of using the iText library to work with PDF documents on Java, * lets you create, analyze, modify and maintain documents in this format. * Ejemplo de uso de la librería iText para trabajar con documentos PDF en Java, * nos permite crear, analizar, modificar y mantener documentos en este formato. * * @author xules You can follow me on my website http://www.codigoxules.org/en * Puedes seguirme en mi web http://www.codigoxules.org */public class GeneratePDFFileIText { private static final Font chapterFont = FontFactory.getFont(FontFactory.HELVETICA, 26, Font.BOLDITALIC); private static final Font paragraphFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL); private static final Font categoryFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD); private static final Font subcategoryFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD); private static final Font blueFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.RED); private static final Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD); private static final String iTextExampleImage = "/home/xules/codigoxules/iText-Example-image.png"; /** * We create a PDF document with iText using different elements to learn * to use this library. * Creamos un documento PDF con iText usando diferentes elementos para aprender * a usar esta librería. * @param pdfNewFile <code>String</code> * pdf File we are going to write. * Fichero pdf en el que vamos a escribir. */ public void createPDF(File pdfNewFile) { // Aquí introduciremos el código para crear el PDF. }}

Création du document et des métadonnées

dans cette Première étape avec Java Itext PDF Nous devons créer un document pour travailler avec lui et l’ajouter Les différentes pages dont nous avons besoin pour notre exemple: document document = nouveau document ();, une fois créé, nous allons associer le document de travail avec le fichier de sortie, ceci est fait avec la méthode com.itextpdf.text.pdf.pdfwriter, ceci est Le code dont nous avons besoin:

 // We create the document and set the file name. // Creamos el documento e indicamos el nombre del fichero. try { Document document = new Document(); try { PdfWriter.getInstance(document, new FileOutputStream(pdfNewFile)); } catch (FileNotFoundException fileNotFoundException) { System.out.println("No such file was found to generate the PDF " + "(No se encontró el fichero para generar el pdf)" + fileNotFoundException); } document.open(); // AQUÍ COMPLETAREMOS NUESTRO CÓDIGO PARA GENERAR EL PDF document.close(); System.out.println("Your PDF file has been generated!(¡Se ha generado tu hoja PDF!"); } catch (DocumentException documentException) { System.out.println("The file not exists (Se ha producido un error al generar un documento): " + documentException); }

Ajoutons maintenant des informations à notre document créé avec Java Itext PDF en entrant dans la métadonnée, celles-ci sont ajoutées directement dans les valeurs. Du document précédemment défini: document:

 // We add metadata to PDF // Añadimos los metadatos del PDF document.addTitle("Table export to PDF (Exportamos la tabla a PDF)"); document.addSubject("Using iText (usando iText)"); document.addKeywords("Java, PDF, iText"); document.addAuthor("Código Xules"); document.addCreator("Código Xules");

Nous créons notre première page

Pour la création de cette première page, nous utiliserons les éléments généraux:

  • com.itextpdf.text.chunk: la plus petite partie qui peut être ajoutée à un document, la plupart des éléments peuvent être divisés en plusieurs morceaux et fondamentalement, il s’agit d’une chaîne avec une source donnée.
  • com.itextpdf.text.Image: représentation graphique des images que nous pouvons utiliser: JPEG, PNG ou GIF.
  • com.itextpdf.text.autod: est une série de morceaux.

et l’élément com.itextpdf.text.chapitre que nous utilisons pour ajouter une section spéciale et c’est-à-dire Où nous allons accrocher dans cet exemple les éléments susmentionnés, vous pouvez le consulter dans le code:

 // First page // Primera página Chunk chunk = new Chunk("This is the title", chapterFont); chunk.setBackground(BaseColor.GRAY); // Let's create de first Chapter (Creemos el primer capítulo) Chapter chapter = new Chapter(new Paragraph(chunk), 1); chapter.setNumberDepth(0); chapter.add(new Paragraph("This is the paragraph", paragraphFont)); // We add an image (Añadimos una imagen) Image image; try { image = Image.getInstance(iTextExampleImage); image.setAbsolutePosition(2, 150); chapter.add(image); } catch (BadElementException ex) { System.out.println("Image BadElementException" + ex); } catch (IOException ex) { System.out.println("Image IOException " + ex); } document.add(chapter);

Ajoutez plus d’éléments iText à notre PDF

Nous ajoutons simplement des éléments à notre nouvelle page pour suivre les éléments de test, tout d’abord, nous avons créé un nouveau chapitre auquel nous sommes nommés à l’aide de com.itextpdf.text.Paragraphe, nous en créons également un autre que nous ajouterons ci-dessous:

 // Second page - some elements // Segunda página - Algunos elementos Chapter chapSecond = new Chapter(new Paragraph(new Anchor("Some elements (Añadimos varios elementos)")), 1); Paragraph paragraphS = new Paragraph("Do it by Xules (Realizado por Xules)", subcategoryFont);

Pour montrer que beaucoup de choses peuvent être faites, nous ajoutons un exemple de la manière de souligner un paragraphe avec Ligne pointillée, Exemple pris du blog Java Itext PDF, et dans lequel l’élément est utilisé com.itextpdf.text.pdf.draw.dotoucheLinePorator qui dessine une ligne pointillée de gauche à droite:

Pour passer un exemple simple de listes Nous ajoutons de l’exemple: Liste des exemples d’IText, simplement pour montrer un exemple d’utilisation et voir à quel point il est simple d’exécuter com .itextpdf.text.list:

à la fin, nous ne pouvons pas oublier Ajoutez notre code au document avec Document.Ajouter (…).

Utilisation de tables dans ITEXT: PDFvertable

Dans cette section, nous nous concentrons sur l’utilisation de com.itextpdf.text.pdf.pdfptable Création d’un nouvelle page, qui deviendra plusieurs, comme nous le verrons, pour la longueur de la table que nous allons mettre en œuvre pour voir le fonctionnement de com.itextpdf.text.pdf.pdfptable.

Tout d’abord dans le code Nous ajoutons plusieurs éléments à ajouter du titre et de sous-titre, que je n’expliquerai pas plus parce que nous utilisons des éléments expliqués précédemment et pour plus de détails, vous pouvez le voir directement dans le code.

Focus sur com.itextpdf.text .pdf.pdfptable C’est un élément qui nous permet de créer une table dont la position peut être absolue mais peut également être ajoutée directement au document. Dans cet exemple, nous ajoutons simplement du texte, mais il sera très utile de remplir par exemple les données obtenues à partir de la base de données.

Les étapes Nous suivons avec les éléments suivants et vous pouvez les consulter dans le code:

  • Nous créons la table: table PDFPTable = Nouveau PDFPTable (NumColumns);
  • Ajoutez les onglets de la table: ColonneHeader = Nouveau PDFPCell (nouvelle phrase (« col » + colonne);
  • Nous remplissons le contenu de la table avec A pour une boucle en ajoutant chaque cellule avec le code: table.addcell (« rangée » + rangée + « – col » + colonne;
  • Enfin, nous ajouterons la table au document, l’ajoutant dans ce cas (il ne doit pas être comme celui-ci) au paragraphe que nous créons au début afin qu’il passe ensuite.

Ceci est le code:

 // How to use PdfPTable // Utilización de PdfPTable // We use various elements to add title and subtitle // Usamos varios elementos para añadir título y subtítulo Anchor anchor = new Anchor("Table export to PDF (Exportamos la tabla a PDF)", categoryFont); anchor.setName("Table export to PDF (Exportamos la tabla a PDF)"); Chapter chapTitle = new Chapter(new Paragraph(anchor), 1); Paragraph paragraph = new Paragraph("Do it by Xules (Realizado por Xules)", subcategoryFont); Section paragraphMore = chapTitle.addSection(paragraph); paragraphMore.add(new Paragraph("This is a simple example (Este es un ejemplo sencillo)")); Integer numColumns = 6; Integer numRows = 120; // We create the table (Creamos la tabla). PdfPTable table = new PdfPTable(numColumns); // Now we fill the PDF table // Ahora llenamos la tabla del PDF PdfPCell columnHeader; // Fill table rows (rellenamos las filas de la tabla). for (int column = 0; column < numColumns; column++) { columnHeader = new PdfPCell(new Phrase("COL " + column)); columnHeader.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(columnHeader); } table.setHeaderRows(1); // Fill table rows (rellenamos las filas de la tabla). for (int row = 0; row < numRows; row++) { for (int column = 0; column < numColumns; column++) { table.addCell("Row " + row + " - Col" + column); } } // We add the table (Añadimos la tabla) paragraphMore.add(table); // We add the paragraph with the table (Añadimos el elemento con la tabla). document.add(chapTitle); document.close(); System.out.println("Your PDF file has been generated!(¡Se ha generado tu hoja PDF!");

résultat final (Code complet)

Nous avons déjà terminé notre code pour générer un fichier PDF avec ITEXT, il suffit maintenant de l’exécuter à partir de notre méthode principale:

 /** * @param args the command line arguments */ public static void main(String args) { GeneratePDFFileIText generatePDFFileIText = new GeneratePDFFileIText(); generatePDFFileIText.createPDF(new File("/home/xules/codigoxules/GeneratePDFFileIText.pdf")); }

Le lien Vous pouvez télécharger le code complet de cet exemple:

Icône

icône

génération d’un PDF de Java avec ITEXT

1 fichier (s) 8,75 kb

En outre, vous pouvez voir le code complet directement:

package org.xulescode.itext;import com.itextpdf.text.Anchor;import com.itextpdf.text.BadElementException;import com.itextpdf.text.BaseColor;import com.itextpdf.text.Chapter;import com.itextpdf.text.Chunk;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Element;import com.itextpdf.text.Font;import com.itextpdf.text.FontFactory;import com.itextpdf.text.Image;import com.itextpdf.text.List;import com.itextpdf.text.ListItem;import com.itextpdf.text.Paragraph;import com.itextpdf.text.Phrase;import com.itextpdf.text.Section;import com.itextpdf.text.pdf.PdfPCell;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.text.pdf.draw.DottedLineSeparator;import java.io.*; /** * Example of using the iText library to work with PDF documents on Java, * lets you create, analyze, modify and maintain documents in this format. * Ejemplo de uso de la librería iText para trabajar con documentos PDF en Java, * nos permite crear, analizar, modificar y mantener documentos en este formato. * * @author xules You can follow me on my website http://www.codigoxules.org/en * Puedes seguirme en mi web http://www.codigoxules.org */public class GeneratePDFFileIText { // Fonts definitions (Definición de fuentes). private static final Font chapterFont = FontFactory.getFont(FontFactory.HELVETICA, 26, Font.BOLDITALIC); private static final Font paragraphFont = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL); private static final Font categoryFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, Font.BOLD); private static final Font subcategoryFont = new Font(Font.FontFamily.TIMES_ROMAN, 16, Font.BOLD); private static final Font blueFont = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.NORMAL, BaseColor.RED); private static final Font smallBold = new Font(Font.FontFamily.TIMES_ROMAN, 12, Font.BOLD); private static final String iTextExampleImage = "/home/xules/codigoxules/iText-Example-image.png"; /** * We create a PDF document with iText using different elements to learn * to use this library. * Creamos un documento PDF con iText usando diferentes elementos para aprender * a usar esta librería. * @param pdfNewFile <code>String</code> * pdf File we are going to write. * Fichero pdf en el que vamos a escribir. */ public void createPDF(File pdfNewFile) { // We create the document and set the file name. // Creamos el documento e indicamos el nombre del fichero. try { Document document = new Document(); try { PdfWriter.getInstance(document, new FileOutputStream(pdfNewFile)); } catch (FileNotFoundException fileNotFoundException) { System.out.println("No such file was found to generate the PDF " + "(No se encontró el fichero para generar el pdf)" + fileNotFoundException); } document.open(); // We add metadata to PDF // Añadimos los metadatos del PDF document.addTitle("Table export to PDF (Exportamos la tabla a PDF)"); document.addSubject("Using iText (usando iText)"); document.addKeywords("Java, PDF, iText"); document.addAuthor("Código Xules"); document.addCreator("Código Xules"); // First page // Primera página Chunk chunk = new Chunk("This is the title", chapterFont); chunk.setBackground(BaseColor.GRAY); // Let's create de first Chapter (Creemos el primer capítulo) Chapter chapter = new Chapter(new Paragraph(chunk), 1); chapter.setNumberDepth(0); chapter.add(new Paragraph("This is the paragraph", paragraphFont)); // We add an image (Añadimos una imagen) Image image; try { image = Image.getInstance(iTextExampleImage); image.setAbsolutePosition(2, 150); chapter.add(image); } catch (BadElementException ex) { System.out.println("Image BadElementException" + ex); } catch (IOException ex) { System.out.println("Image IOException " + ex); } document.add(chapter); // Second page - some elements // Segunda página - Algunos elementos Chapter chapSecond = new Chapter(new Paragraph(new Anchor("Some elements (Añadimos varios elementos)")), 1); Paragraph paragraphS = new Paragraph("Do it by Xules (Realizado por Xules)", subcategoryFont); // Underline a paragraph by iText (subrayando un párrafo por iText) Paragraph paragraphE = new Paragraph("This line will be underlined with a dotted line (Está línea será subrayada con una línea de puntos)."); DottedLineSeparator dottedline = new DottedLineSeparator(); dottedline.setOffset(-2); dottedline.setGap(2f); paragraphE.add(dottedline); chapSecond.addSection(paragraphE); Section paragraphMoreS = chapSecond.addSection(paragraphS); // List by iText (listas por iText) String text = "test 1 2 3 "; for (int i = 0; i < 5; i++) { text = text + text; } List list = new List(List.UNORDERED); ListItem item = new ListItem(text); item.setAlignment(Element.ALIGN_JUSTIFIED); list.add(item); text = "a b c align "; for (int i = 0; i < 5; i++) { text = text + text; } item = new ListItem(text); item.setAlignment(Element.ALIGN_JUSTIFIED); list.add(item); text = "supercalifragilisticexpialidocious "; for (int i = 0; i < 3; i++) { text = text + text; } item = new ListItem(text); item.setAlignment(Element.ALIGN_JUSTIFIED); list.add(item); paragraphMoreS.add(list); document.add(chapSecond); // How to use PdfPTable // Utilización de PdfPTable // We use various elements to add title and subtitle // Usamos varios elementos para añadir título y subtítulo Anchor anchor = new Anchor("Table export to PDF (Exportamos la tabla a PDF)", categoryFont); anchor.setName("Table export to PDF (Exportamos la tabla a PDF)"); Chapter chapTitle = new Chapter(new Paragraph(anchor), 1); Paragraph paragraph = new Paragraph("Do it by Xules (Realizado por Xules)", subcategoryFont); Section paragraphMore = chapTitle.addSection(paragraph); paragraphMore.add(new Paragraph("This is a simple example (Este es un ejemplo sencillo)")); Integer numColumns = 6; Integer numRows = 120; // We create the table (Creamos la tabla). PdfPTable table = new PdfPTable(numColumns); // Now we fill the PDF table // Ahora llenamos la tabla del PDF PdfPCell columnHeader; // Fill table rows (rellenamos las filas de la tabla). for (int column = 0; column < numColumns; column++) { columnHeader = new PdfPCell(new Phrase("COL " + column)); columnHeader.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(columnHeader); } table.setHeaderRows(1); // Fill table rows (rellenamos las filas de la tabla). for (int row = 0; row < numRows; row++) { for (int column = 0; column < numColumns; column++) { table.addCell("Row " + row + " - Col" + column); } } // We add the table (Añadimos la tabla) paragraphMore.add(table); // We add the paragraph with the table (Añadimos el elemento con la tabla). document.add(chapTitle); document.close(); System.out.println("Your PDF file has been generated!(¡Se ha generado tu hoja PDF!"); } catch (DocumentException documentException) { System.out.println("The file not exists (Se ha producido un error al generar un documento): " + documentException); } } /** * @param args the command line arguments */ public static void main(String args) { GeneratePDFFileIText generatePDFFileIText = new GeneratePDFFileIText(); generatePDFFileIText.createPDF(new File("/home/xules/codigoxules/GeneratePDFFileIText.pdf")); }}

Ceci est le PDF qui est obtenu en tant que résultat final de cet exemple:

icône

Générer un fichier PDF iText de Java

1 fichier (s) 157,59 kb

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *