En este tutorial se mostrará la creación de un documento PDF de forma sencilla y rápida empleando iText y Maven.
Índice de contenidos
- 1. Introducción
- 2. Entorno
- 3. Añadir las dependencias en Maven
- 4. Manejo del documento en Java
- 5. Conclusiones
- 6. Referencias
1. Introducción
Si por el motivo que fuera se necesita manejar un documento PDF, aunque ya sea para agregar unas líneas o una imagen, una forma sencilla y sin complicaciones de realizar este cometido es emplear iText.
iText nos permite, usando Java, editar o transformar contenido a PDF.
Aunque en este tutorial se trate de forma muy tangente no quiero dar a entender que deba ser un «engine», como lo llaman sus desarrolladores, a tener en cuenta a la ligera ni mucho menos. De hecho es una herramienta muy potente capaz de crear PDFs de formas muy variopintas, mezclarlos y hasta convertir código HTML a PDF.
Antes de comenzar a «trastear» con iText debo aclarar que es gratuito siempre y cuando no se emplee en proyectos cerrados, en dicho caso se requerirá una licencia.
2. Entorno
El tutorial está escrito usando el siguiente entorno:
- Hardware: Portátil MacBook Pro 15′ (2 Ghz Intel Core I7, 8GB DDR3).
- Sistema Operativo: Mac OS Sierra 10.12.5
- Entorno de desarrollo: Eclipse Neon 3
- Apache Maven 3.5.0
3. Añadir las dependencias en Maven
Una vez creamos nuestro proyecto maven en Eclipse toca añadir las dependencias.
En nuestro caso es tan sencillo como añadir iText como dependencia en el pom.xml de nuestro proyecto:
<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.10</version> </dependency>
4. Manejo del documento en Java
Aprovechando que Maven nos ha generado un App.java vamos a usarlo para nuestro pequeño ejemplo:
public class App { public static void main(String[] args) { writePDF(); } private static void writePDF() { Document document = new Document(); try { String path = new File(".").getCanonicalPath(); String FILE_NAME = path + "/itext-test-file.pdf"; PdfWriter.getInstance(document, new FileOutputStream(new File(FILE_NAME))); document.open(); Paragraph paragraphHello = new Paragraph(); paragraphHello.add("Hello iText paragraph!"); paragraphHello.setAlignment(Element.ALIGN_JUSTIFIED); document.add(paragraphHello); Paragraph paragraphLorem = new Paragraph(); paragraphLorem.add("Lorem ipsum dolor sit amet, consectetur adipiscing elit." + "Maecenas finibus fringilla turpis, vitae fringilla justo." + "Sed imperdiet purus quis tellus molestie, et finibus risus placerat." + "Donec convallis eget felis vitae interdum. Praesent varius risus et dictum hendrerit." + "Aenean eu semper nunc. Aenean posuere viverra orci in hendrerit. Aenean dui purus, eleifend nec tellus vitae," + " pretium dignissim ex. Aliquam erat volutpat. "); java.util.ListparagraphList = new ArrayList<>(); paragraphList = paragraphLorem.breakUp(); Font f = new Font(); f.setFamily(FontFamily.COURIER.name()); f.setStyle(Font.BOLDITALIC); f.setSize(8); Paragraph p3 = new Paragraph(); p3.setFont(f); p3.addAll(paragraphList); p3.add("TEST LOREM IPSUM DOLOR SIT AMET CONSECTETUR ADIPISCING ELIT!"); document.add(paragraphLorem); document.add(p3); document.close(); } catch (FileNotFoundException | DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Mediante este código obtenemos el siguiente resultado:
Empleamos principalmente párrafos, aunque cada uno tiene sus peculiaridades. Existen más elementos como imágenes, pero los fundamentos son los mismos.
Podemos modificar el alineamiento del texto añadido ya que los párrafos tienen atributos para tal fin, además de poder cambiar la fuente en tamaño, forma e incluso que se vea en «negrita» o cursiva.
Una función que puede llamar la atención es «addAll» la cual añade todos los elementos de una colección de tipo Element, en este caso, al párrafo, lo que puede dinamizar bastante el crear estos documentos. Llama la atención el hecho de que añade «tal cual» los elementos de la colección, es decir, como puede observarse en la imagen del resultado, el estilo sigue siendo el original y no el que tiene el párrafo.
Cabe destacar que el documento PDF debe abrirse antes de operar con él y
5. Conclusiones
Como hemos visto anteriormente, el manejo de un documento es muy sencillo, aunque no olvidar que puede complicarse todo lo que queramos ya que nos permite hacer muchas cosas más, pero para ello os invito a probar iText y a revisar los ejemplos que muestran, que podréis encontrar más abajo.
el código esta bastante limpio, no me abre el pdf sabes si necesito tener instalado adobe o aluna aplicación para visualizado?
Hector,
Necesito convertir PDF a TIFF files usando iText 7.
Podrias ayudarme? No tengo idea com o hacerlo
Hola, pdftk ha sacado actualizacion para el que no lo sepa. Lo he descargado desde descargarpdfgratis.com y marcha perfecto en mi laptop
Buenas tardes.
tengo un problema y estoy atascado, haber si me puedes ayudar por favor.
necesito hacer una plantilla en pdf para poner los datos de una matricula, el formato es de 52 x 11 cm lo intento hacer con iText 7
pero cuando empiezo ha agrandarlo al fina no me muestra los números. y necesitaria tambien pone cada número con una seoaración determindada. consigo poner la plantilla pero cuando agrando la font no me deja agrandarlo tanto y me desaparece
agradezco toda la ayuda posible
utilizo fontsize
gracias