Xules Code

Astăzi vom vedea o bibliotecă PDF din Java, care ne permite să creăm, să analizăm, să modificăm și să întreținm documentele În format PDF Itext nu este utilizat numai de Java este de asemenea utilizat în .NET, Android și GAE pentru a oferi aplicațiile sale cu PDF.

Itext logo

Ce ne oferă Itext?

itext este o bibliotecă PDF care ne permite să creăm, să ne adaptăm, să revizuim și să menținm documente în formatul documentului PDF, unele dintre caracteristicile principale sunt:

  • Generați documente și rapoarte extrase dintr-un fișier XML sau dintr-o bază de date
  • Creați hărți și cărți, care încorporează caracteristici interactive în format PDF
  • Adăugați marcaje, numere de pagină, filigrane, și alte caracteristici ale documentelor PDF existente
    împărțiți sau concatenați paginile fișierelor PDF existente
  • completați formularele interactive.
  • serverul a generat dinamic sau manipulați documentele PDF într-un browser web.

Java Itext PDF – Crearea unui PDF în Java cu Itext

  1. Adăugați librării și CRE Clasa de masterat
  2. Crearea documentului și a metadatelor
  3. Am creat prima noastră pagină
  4. Adăugați mai multe articole de la ITEXT la PDF-ul nostru
  5. Utilizarea tabelelor în ITEXT: PDFPTABLE
  6. Rezultatul final (cod complet)
  7. Documentație utilizată

Software și unelte utilizate

Adăugați librările și creați clasa

Vom începe să descărcați cea mai recentă versiune a acestei biblioteci, puteți accesa SourceForge sau descărcați-l din acest link: Descărcați de la Itext de la Sourceforge.

Am configurat proiectul

Pentru acest proiect vom folosi NetBeans care oferă un suport mare pentru dezvoltarea aplicațiilor cu Java.

Am deschis Netbeans și căutăm noua opțiune de proiect, când expertul a fost deschis pe care l-am deschis Java > java aplicație, atunci vă vom da doar un nume proiectului nostru și ubic ization.

Puteți folosi orice alt IDE pentru Java, tot ce veți avea nevoie este de a adăuga bibliotecile itext.

Creăm clasa

pentru a crea o Clasa nouă Stăm pe proiect și în meniul pop-up pe care îl selectăm Nou Java Clasa, acolo vom introduce numele clasei și pachetul în care dorim să localizăm, În cazul meu:

  • Clasa Nume: geneterpdftilitext.java
  • Pachet: org.xulescode.itext

Acest cod își propune să fie Cel mai simplu posibil, deci vom plasa tot codul în cadrul metodei: Public Void CreatePDF (Fișier PDFNewfile) pentru a putea urma ca un script pe măsură ce creăm un document PDF și o variabilă sursă și o locație pentru o imagine pe care o voi face Utilizați în exemplul:

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. }}

Crearea documentului și a metadatelor

în acest sens Primul pas cu Java Itext PDF Trebuie să creăm un document pentru a lucra cu el și de a-l adăuga Diferitele pagini de care avem nevoie pentru exemplul nostru: document document = un document nou ();, odată creat vom asocia documentul de lucru cu fișierul de ieșire, acest lucru se face cu metoda com.itextpdf.text.pdf.pdfwriter, aceasta este Codul de care avem nevoie:

 // 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); }

Acum, să adăugăm informații documentului nostru creat cu Java Itext PDF introducând metadatele, acestea sunt adăugate direct în valori A documentului definit anterior: Document:

divid id = „819CEB339E”>

Noi creăm prima noastră pagină

Pentru crearea acestei pagini, vom folosi elementele generale:

  • com.itextpdf.text.chunk: cea mai mică parte care poate fi adăugată la un document, majoritatea elementelor pot fi împărțite în mai multe bucăți și, în principiu, este un șir cu o sursă dată.
  • com.itextpdf.text.Image: Reprezentarea grafică a imaginilor pe care le putem folosi: JPEG, PNG sau GIF.
  • com.itextpdf.text.Aplipraf: este o serie de bucăți.

și elementul com.itextpdf.text.chapter pe care îl folosim pentru a adăuga o secțiune specială și care este În cazul în care vom atârna în acest exemplu elementele menționate mai sus, vă puteți consulta în cod:

 // 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);

Adăugați mai multe elemente itext la PDF-ul nostru

Acum adăugăm câteva elemente pe noua noastră pagină pentru a continua să testeze articolele, în primul rând am creat un nou capitol la care suntem numiți folosind com.itextpdf.text.Paragraful, de asemenea, creăm alta pe care vom adăuga mai jos:

Pentru a arăta că multe lucruri pot fi făcute adăugăm un exemplu de a sublinia un paragraf cu O linie punctată, luată din blogul Java Itext PDF și în care elementul este utilizat com.itextpdf.text.pdf.draw.dottedline.pdf.draw.dottedlineSeprator care atrage o linie punctată de la stânga la dreapta:

 // 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);

Pentru a face un exemplu simplu de liste pe care le adăugăm din exemplu: lista exemplelor de la itext, pur și simplu pentru a afișa un exemplu de utilizare și de a vedea cât de simplu este să rulați com .Itextpdf.text.list:

iv id = „75105299a”

La final, nu putem uita să adăugați codul nostru la document cu Document.Add (…).

Utilizarea meselor în Itext: PDFverbleble

În această secțiune ne concentrăm pe utilizarea com.itextPdf.text.pdf.pdfptable Crearea unui noua pagină, care va deveni mai multe după cum vom vedea, pentru lungimea mesei pe care o vom implementa pentru a vedea funcționarea com.itextpdf.text.pdf.pdfptable.

În primul rând, în cod Adăugam câteva elemente pentru a adăuga titlu și subtitrare, că nu voi explica mai mult deoarece folosim elemente explicate anterior și pentru mai multe detalii pe care le puteți vedea direct în cod.

hai să ne concentrăm pe com.itextpdf.text .pdf.pdfptabile care este un element care ne permite să creăm un tabel a cărei poziție poate fi absolută, dar poate fi adăugată direct la document. În acest exemplu, adăugăm pur și simplu text, dar va fi foarte util să umpleți, de exemplu, cu datele obținute din baza de date.

Pașii pe care urmele urmează și le puteți consulta în cod:

  • Noi creăm tabelul: tabelul pdfptabil = nou PDFPPTABLE (NUMCOLUMNS);
  • Adăugați filele din tabel: Columpheader = New PDFPCELL (noua frază (coloana „Col”);
  • Am completat conținutul tabelului cu o buclă pentru a adăuga fiecare celulă cu codul: table.addcell („rând” + rând + „- coloana Col”;
  • În cele din urmă, vom adăuga tabelul la document, adăugându-l în acest caz (nu trebuie să fie așa) la paragraful pe care îl creăm la început, astfel încât să meargă în continuare.

Acesta este codul:

 // 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!");

rezultat final (cod complet)

Am terminat deja codul nostru pentru a genera un PDF cu Itext, acum trebuie doar să o conducem din metoda noastră principală:

 /** * @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")); }

în Linkul pe care îl puteți descărca codul complet al acestui exemplu:

iv id = „094F8B9F78”

icon

Generarea unui PDF de la Java cu itext

1 fișier (e) 8.75 kb

Puteți vedea direct codul complet:

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")); }}

Acesta este PDF care este obținut ca a Rezultatul final al acestui exemplu:

iv id = „4df30bddf8”

icon

Generarea fișierului PDF itext de la Java

1 fișier (e) 157.59 kB

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *