Looking for itext Answers? Try Ask4KnowledgeBase
Looking for itext Keywords? Try Ask4Keywords

itextEmpezando con itext


Observaciones

Si nos fijamos en la creación de PDF, encontrará dos enfoques diferentes:

  • Los diseñadores gráficos utilizan aplicaciones de escritorio como Adobe Acrobat o Adobe InDesign para crear un documento en un proceso manual o semimanual.
  • En otro contexto, los documentos PDF se crean mediante programación, utilizando una API para producir archivos PDF directamente desde aplicaciones de software, sin la intervención humana, o con una intervención mínima. A veces, el documento se crea primero en un formato intermedio (por ejemplo, XML, HTML, ...), y luego se convierte a PDF.

Estos diferentes enfoques exigen diferentes productos de software.

Lo mismo ocurre con la manipulación de PDF.

  • Puede actualizar un PDF manualmente en herramientas como Adobe Acrobat,
  • También hay herramientas que permiten que los formularios se llenen automáticamente según la información de una base de datos.

iText es una herramienta que se centra en el lado de la automatización de las cosas.

¿Qué es iText?

iText es un SDK que fue desarrollado para permitir a los desarrolladores hacer lo siguiente (y mucho más):

  • Genere documentos e informes basados ​​en datos de un archivo XML o una base de datos
  • Crea mapas y libros, explotando numerosas funciones interactivas disponibles en PDF
  • Agregue marcadores, números de página, marcas de agua y otras características a los documentos PDF existentes
  • Dividir o concatenar páginas de archivos PDF existentes
  • Rellena formularios interactivos
  • Firmar digitalmente documentos PDF
  • Servir documentos PDF generados o manipulados dinámicamente en un navegador web

iText no es una herramienta para el usuario final. Debe integrar iText en sus propias aplicaciones para poder automatizar el proceso de creación y manipulación de PDF.

¿Cuándo usar iText?

Normalmente, iText se usa en proyectos que tienen uno de los siguientes requisitos:

  • El contenido no está disponible de antemano: se calcula en función de las aportaciones de los usuarios o la información de la base de datos en tiempo real.
  • Los archivos PDF no se pueden producir manualmente debido al volumen masivo de contenido: una gran cantidad de páginas o documentos.
  • Los documentos deben crearse en modo desatendido, en un proceso por lotes.
  • El contenido debe ser personalizado o personalizado; por ejemplo, el nombre del usuario final tiene que estar impreso en varias páginas.

A menudo encontrará estos requisitos en las aplicaciones web, donde el contenido debe ser servido dinámicamente en un navegador. Normalmente, esta información se proporcionará en forma de HTML, pero para algunos documentos, se prefiere PDF sobre HTML para una mejor calidad de impresión, para una presentación idéntica en una variedad de plataformas, por razones de seguridad, para cumplir con estándares específicos de la industria (tales como como PAdES, PDF / A, o PDF / UA), o para reducir el tamaño del archivo.

Versiones

Versión Primer lanzamiento Último lanzamiento Fin de la vida
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

Hola Mundo

Este es un programa muy simple para crear un PDF usando 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 )

Puede navegar a muchos otros ejemplos de esa página.


Y este es un programa muy simple para crear un PDF utilizando el precursor 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 )

También hay muchos más ejemplos para navegar desde esta página.


Estos dos ejemplos parecen bastante similares. Sin embargo, las ventajas de la API de iText 7 rediseñada se harán evidentes tan pronto como uno empiece a mirar más de cerca los ejemplos menos triviales. Por lo tanto, simplemente navegue a través del código fuente de ejemplo de los enlaces anteriores y compare.

Instalación o configuración

iText para Java

Importar los frascos de iText desde el repositorio de Central Maven es la mejor manera de instalar iText 7. Estos videos simples explican cómo hacerlo utilizando diferentes IDE:

En estos tutoriales, solo definimos el kernel y los proyectos de layout como dependencias. Maven también importa automáticamente el jar de io porque los paquetes del kernel dependen de los paquetes de io .

Esta es la lista básica de dependencias para uso estándar 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>
 

Cada dependencia corresponde con un jar en Java y con una DLL en C #.

  • kernel e io : contienen funcionalidad de bajo nivel.
  • layout : contiene funcionalidad de alto nivel.
  • forms : necesarias para todos los ejemplos de AcroForm.
  • pdfa : necesario para la funcionalidad específica de PDF / A
  • pdftest : necesario para los ejemplos que también son una prueba.

Para un uso más específico de iText 7, es posible que necesite tarros adicionales:

  • barcodes : use esto si desea crear códigos de barras.
  • hyph : usa esto si quieres que el texto esté dividido en guiones.
  • font-asian : usa esto si necesitas la funcionalidad CJK (chino / japonés / coreano)
  • sign : use esto si necesita soporte para firmas digitales.

Todos los frascos mencionados anteriormente están disponibles bajo la licencia AGPL. También puede descargar estos archivos en un archivo ZIP alojado en Github: https://github.com/itext/itext7/releases

Si desea usar estos frascos, debe agregarlos a su CLASSPATH, tal como lo haría con cualquier otro frasco.

La funcionalidad adicional de iText 7 está disponible a través de complementos, que se entregan como frascos bajo una licencia comercial. Si desea utilizar alguno de estos complementos, o si desea usar iText 7 con su código de propietario, debe obtener una clave de licencia comercial para iText 7 (consulte la sección legal del sitio web de iText ).

Puede importar dicha clave de licencia utilizando el módulo de clave de licencia. Puede obtener el tarro de clave de licencia de esta manera:

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

Algunas funcionalidades en iText son de código cerrado. Por ejemplo, si desea utilizar PdfCalligraph , necesita el módulo de typography . Este módulo no funcionará sin una clave de licencia oficial.

iText para C #

Puede descargar un archivo ZIP que contiene todas las DLL que están disponibles bajo la AGPL. Para obtener más información sobre estas DLL, lea la documentación de Java.