Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2721

Blog Bitix: Ejemplo sencillo de como crear un documento PDF con PDFBox

$
0
0

Leer un CSV, escribir un CSV, archivos excel, generar gráficas para visualizar datos junto con generar documentos PDF son tareas comunes de las aplicaciones como forma de exportar los datos de la base de datos de una aplicación. Generar un archivo PDF con PDFBox requiere unas pocas lineas de código para documentos con cierta complejidad quizá sea más adecuado usar la librería JasperReports.

Java

Generar documentos e informes de salida en una una tarea básica de cualquier aplicación y una forma de exportar los datos a otros formatos. Con Apache POI se pueden generar hojas de cálculo excel para su procesamiento con LibreOffice o Microsoft Office Excel. En ocasiones también es necesario generar gráficas para visualizar un conjunto grande de datos para ser más fáciles de interpretar, descubrir tendencias, comparar, sacar conclusiones en base a las cuales tomar alguna acción. Los archivos PDF también son muy utilizados para imprimirlos en formato en papel o enviarlos adjuntos en correos electrónicos.

Uno de estos casos podría ser la generación de una factura en base a una plantilla e incluir el el importe y consumo realizado por un cliente y que este pueda obtenerla en formato electrónico o le sea enviada por correo electrónico como un documento adjunto o enviar un correo electrónico para indicar que tiene la factura disponible en su área de cliente lista para su descarga. Este es el caso de muchas empresas que ofrecen servicios como compañías eléctricas, de telecomunicaciones, servicios municipales de agua y basura, bancos para su justificantes y comprobantes, comercios, etc…

Para generar documentos en PDF en Java está disponible la librería Apache PDFBox. Un ejemplo sencillo de como generar un archivo PDF con algunos estilos de texto, fuentes, un tamaño específico de página y una imagen es el siguiente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
packageio.github.picodotdev.blogbitix.javapdf;importorg.apache.pdfbox.pdmodel.PDDocument;importorg.apache.pdfbox.pdmodel.PDPage;importorg.apache.pdfbox.pdmodel.PDPageContentStream;importorg.apache.pdfbox.pdmodel.common.PDRectangle;importorg.apache.pdfbox.pdmodel.font.PDType1Font;importorg.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;publicclassMain{publicstaticvoidmain(String[]args)throwsException{try(PDDocumentdocument=newPDDocument()){PDPagepage=newPDPage(PDRectangle.A6);document.addPage(page);PDPageContentStreamcontentStream=newPDPageContentStream(document,page);// Text
contentStream.beginText();contentStream.setFont(PDType1Font.TIMES_BOLD,32);contentStream.newLineAtOffset(20,page.getMediaBox().getHeight()-52);contentStream.showText("Hello World!");contentStream.endText();// Image
PDImageXObjectimage=PDImageXObject.createFromByteArray(document,Main.class.getResourceAsStream("/java.png").readAllBytes(),"Java Logo");contentStream.drawImage(image,20,20,image.getWidth()/3,image.getHeight()/3);contentStream.close();document.save("document.pdf");}}}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
plugins{id'java'id'application'}application{mainClassName='io.github.picodotdev.blogbitix.javapdf.Main'}repositories{jcenter()}dependencies{compile'org.apache.pdfbox:pdfbox:2.0.16'}

El resultado es el siguiente Documento PDF.

Documento generado con PDFBox

Pero en vez de crear un documento PDF desde cero desde Java si se trata de una factura es más sencillo partir de un documento PDF a modo de plantilla con el diseño deseado en el que solo haya que incluir la información que varía en la ubicación del documento apropiada. Este sería en caso de una factura o justificante. Y si el documento es un informe con muchos datos o el diseño se desea cambia independientemente de la información que incluye o es complejo en vez de insertar cada campo de texto e imágenes individualmente con código está la opción de utilizar el generador de documentos JasperReports.

En el siguiente tutorial de PDFBox se incluyen más ejemplos de tareas básicas al procesar documentos PDF con esta librería.

El código fuente completo del ejemplo puedes descargarlo del repositorio de ejemplos de Blog Bitix alojado en GitHub y probarlo en tu equipo ejecutando el comando ./gradlew run.


Viewing all articles
Browse latest Browse all 2721

Trending Articles


Vimeo 10.7.0 by Vimeo.com, Inc.


Pokemon para colorear


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


Long Distance Relationship Tagalog Love Quotes


Ligaw Quotes – Courting Quotes – Sweet Tagalog Quotes


Tagalog Quotes about Love


INUMAN QUOTES


Re:Mutton Pies (lleechef)


Vimeo 10.7.1 by Vimeo.com, Inc.


Gwapo Quotes : Babaero Quotes


Girasoles para colorear


mayabang Quotes, Torpe Quotes, tanga Quotes


Break up Quotes Tagalog Love Quote – Broken Hearted Quotes Tagalog


Two timer Sad tagalog Love quotes


Inggit Quotes and Kabit Quotes – Tagalog Patama Quotes


5 Tagalog Relationship Rules


Best Love Life Quotes Collection


EASY COME, EASY GO


FORECLOSURE OF REAL ESTATE MORTGAGE