Biblioteca de Java PDF estable y gratuita (de código abierto) solo para párrafos de texto

En un proyecto en el que estoy trabajando, tengo el requisito de generar un PDF. Este PDF contendrá solo texto, y el contenido del texto será bastante variable. La mayor parte del texto debe imprimirse en párrafos separados impresos uno debajo del otro. En caso de que el párrafo no quepa en una página, simplemente debe agregarse a la siguiente. Debe ser gratuito (como en la cerveza, preferiblemente como en código abierto también) y estable (no un proyecto de juguete).

Como nota al margen, el proyecto en sí se utilizará comercialmente. Los usuarios podrán enviar una llamada a la API y se generará un PDF específico para ellos (su contenido es en lo que nos especializamos).

Respuestas (2)

Según ¿Cuál es la mejor biblioteca de código abierto de PDF para Java? [cerrado] en StackOverflow, su mejor apuesta podría ser iText :

iText es una biblioteca PDF que le permite CREAR, ADAPTAR, INSPECCIONAR y MANTENER documentos en formato de documento portátil (PDF): - Generar documentos e informes basados ​​en datos de un archivo XML o una base de datos - Crear mapas y libros, aprovechando numerosos funciones disponibles en PDF - Agregar marcadores, números de página, marcas de agua y otras funciones a documentos PDF existentes - Dividir o concatenar páginas de archivos PDF existentes - Rellenar formularios interactivos - Entregar documentos PDF manipulados o generados dinámicamente en un navegador web

Los desarrolladores de Java, .NET, Android y GAE utilizan iText para mejorar sus aplicaciones con la funcionalidad de PDF.

Varios ingenieros de iText apoyan activamente el proyecto en StackOverflow: https://stackoverflow.com/questions/tagged/itext

Esta biblioteca parece ser gratuita para uso personal.

Sin embargo, parece que iText no es gratuito para uso comercial. Su uso será en una API comercial (básicamente, se creará un tipo específico de documentos para el usuario)
@Kristof Veo que editaste en esa parte sobre la necesidad para uso comercial :-). Puede consultar el enlace de referencia y ver si Apache FOP es una mejor alternativa para usted
Sí, lo edité para mayor claridad :)
Revisé Apache FOP, después de jugar con él, definitivamente parece una gran solución. Bastante rápido también, ¡gracias!
@Kristof ¿Podría escribir una respuesta sobre Apache FOP, qué hace y cómo se adapta a sus necesidades?

Apache FOP , en combinación con Freemarker , es una excelente solución para configurar un sistema de plantillas simple para generar archivos PDF con poco más que texto y algunas imágenes básicas.

Freemarker se utiliza para crear plantillas dinámicas que dan como resultado un XML al estilo de:

<letter>
    <paragraph>Some static content always in here</paragraph>
    <paragraph>Bla bla bla</paragraph>
    <paragraph>Foo foo foo</paragraph>
</letter>

Donde el bla bla bla y el foo foo foo en realidad provienen de una Lista en un POJO. FOP también se puede usar para crear este XML (o tener una plantilla completamente dinámica), pero parece más frágil hacerlo.

Luego, Apache FOP se usa para crear un XML a partir del PDF. Básicamente le dices a FOP que para un "párrafo" tiene que crear un bloque de texto en el PDF con ciertas especificaciones.

De esa manera, puede usarlo como si usara CSS en una página web común y dividir totalmente la generación y estructura del contenido (Freemarker) y la presentación final (Apache FOP).

Esto suena como una buena solución, ¿podría agregar enlaces a Freemarker y Apache FOP?
Para mí es una solución bastante ordenada. Si necesito tipos adicionales de documentos, solo agrego plantillas de Freemarker. Si necesito visualizaciones de plantillas adicionales (como un tipo específico de párrafo), simplemente agrego cosas a la plantilla FOP. Además, al editar mi plantilla FOP, influyo en todo tipo de documento generado.