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.