Evilnapsis

Programming, Hacking and More

Java

Crear PDF con PDFBox en Java

PDFBOX es una libreria para crear PDFs en Java, es una libreria del Apache Project, por lo que es software libre , esta muy bien documentada y tiene una gran comudidad para resolver problemas y dudas.

La libreria PDFBox sirve para crear , modificar , leer o extraer datos de documentos pdf en Java.

Para crear un documento con PDFBox vamos a crear un proyecto Java nuevo en NetBeans.

Descargar PDFBox

Para descargar PDFBox vamos a usar maven, agregaremos el XML de la dependencia en el archivo pom.xml

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox -->
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>3.0.0-RC1</version>
</dependency>

    </dependencies>

Despues en la carpeta “Dependencies” de nuestro proyecto, daremos click derecho y despues “Download Declared Dependencies” y se descargara PDFBox, FontBox que usaremos en nuestro proyecto.

Codigo

Primero que nada es necesario agregar los siguientes imports, aunque luego se pueden agregar por suguerencia del NetBeans.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

El siguiente es el codigo para crear un PDF Basico con un titulo y 2 parrafos, le agregue comentarios a cada linea para que puedan comprender mejor.

/// CREAR DOCUMENTO
        PDDocument document = new PDDocument();
        /// CREAR PAGINA
        PDPage page = new PDPage();
        /// AGREGAR LA PAGINA AL DOCUMENTO
        document.addPage(page);
        /// CREAR UN STREAM PARA AGREGAR TEXTO
        PDPageContentStream stream = new PDPageContentStream(document, page);
        /// CREAR UN OBJETO CON LA FUENTE QUE VAMOS A USAR PARA EL TEXTO
        PDFont font = PDType1Font.HELVETICA;
        /// INICIAMOS EL STREAM DE TEXTO
        stream.beginText();
        /// DEFINIMOS LA FUENTE Y EL TAMA~O PARA EL TITULO
        stream.setFont(font, 24);
        /// DEFINIMOS LAS COORDENADAS PARA INICIAR EL TEXTO
        stream.newLineAtOffset(10,760 );   
        /// MOSTRAMOS EL TEXTO/ TITULO
        stream.showText("Crear PDF con PDFBox en Java");
        /// DEFINIMOS EL LA FUENTE Y TAMA~O PARA LOS PARRAFOS
        stream.setFont(font, 12);
        /// DEFINIMOS LAS COORDENADAS EN REFERENCIA A LA DEFINICION DE COORDENADAS ANTERIOR
        stream.newLineAtOffset(0, -10);
        /// MOSTRAMOS EL TEXTO DE UN PARRAFO
        stream.showText("Hola Mundo !!!");
        /// DEFINIMOS LAS COORDENADAS EN REFERENCIA A LA DEFINICION DE COORDENADAS ANTERIOR
        stream.newLineAtOffset(0, -10);
        /// MOSTRAMOS EL TEXTO DE OTRO PARRAFO
        stream.showText("Linea 3!");
        /// FINALIZAMOS EL STREAM DE TEXTO
        stream.endText();
        /// CERRAMOS EL STREAM
        stream.close();
        /// GUARDAMOS EL DOCUMENTO
        document.save("hola.pdf");
        /// CERRAMOS EL DOCUMENTO
        document.close();

El resultado se guardara en el archivo hola.pdf.

Resultado

Mas Informacion

Si requieres mas informacion puedes ver en la documentacion de PDFBox.

Link: https://pdfbox.apache.org/

Agustin Ramos

Desarrollador de Software