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.