Skip to content

Prueba de Concepto (PoC) desarrollada para implementar la generación de documentos PDF en un entorno Java Backend.

Notifications You must be signed in to change notification settings

vasqodev/appimgpdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java PDF Generator - Proof of Concept (PoC)

📌 Contexto del Proyecto

Este repositorio contiene una Prueba de Concepto (PoC) desarrollada como ejercicio práctico para implementar la generación programática de documentos PDF en un entorno Java Backend.

El proyecto surge como respuesta proactiva a un desafío técnico común en el desarrollo de software empresarial: la exportación de reportes con contenido mixto (texto e imágenes) de manera eficiente.

🛠 Stack Tecnológico

  • Lenguaje: Java SE (Enfoque en POO y Manejo de Excepciones).
  • Librería Core: Apache PDFBox (Open Source).
  • Gestión de Dependencias: Maven (pom.xml).
  • IDE: IntelliJ IDEA.

🚀 Funcionalidades Implementadas

El script ejecuta un flujo lineal de generación de documentos:

  1. Inicialización de Documento: Creación de instancias PDDocument en memoria.
  2. Stream de Contenido: Uso de PDPageContentStream para "dibujar" elementos en coordenadas específicas (X, Y).
  3. Manejo de Assets: Carga e incrustación de imágenes externas (PDImageXObject) con validación de existencia de archivos (java.io.File).
  4. Gestión de Recursos: Implementación de buenas prácticas para el cierre de flujos de memoria (.close()) para evitar memory leaks.

💡 Decisiones Técnicas y Aprendizajes

Durante la implementación de esta solución, se consideraron los siguientes puntos clave para un entorno de producción real:

  • Eficiencia de Memoria: A diferencia de generar HTML y convertirlo, el uso de librerías nativas como PDFBox permite un control granular sobre el peso del archivo final.
  • Manejo de Errores: Se implementaron bloques try-catch para asegurar que el sistema no colapse si falta un recurso (como la imagen del logo), permitiendo una degradación elegante del servicio.
  • Escalabilidad: Aunque esta es una aplicación de consola (Main), la lógica está desacoplada y lista para ser migrada a un Microservicio REST o una Cloud Function en Google Cloud Platform (GCP).

📦 Cómo ejecutar

  1. Clonar el repositorio.
  2. Asegurarse de tener Maven cargado para bajar las dependencias de Apache PDFBox.
  3. Colocar una imagen llamada logo.jpg en la raíz del proyecto.
  4. Ejecutar la clase Main.
  5. Verificar la creación del archivo resultado_prueba.pdf.

Autor: Rodrigo Vásquez Alarcón Desarrollador Fullstack Trainee

About

Prueba de Concepto (PoC) desarrollada para implementar la generación de documentos PDF en un entorno Java Backend.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages