studio - Compare estos productos para la generación de PDF con requisitos dados por Java dentro de: iText, Apache PDFBox o FOP?
itext java oracle (7)
- yo texteo; hoy en día iText es una biblioteca comercial, la última versión ya no es gratis
- PETIMETRE; Trabajé mucho con FOP. Es bastante intensivo en recursos (Java> XML> XSLT> PDF) y los PDF complejos se convierten en una pesadilla (pueden dar como resultado XSLT con 20k + LoC)
- PDFBox; parece ser la mejor alternativa aunque no trabajé con ella en grandes proyectos
- No revisé Flying Saucer todavía
Para concluir, le daría una oportunidad a PDFBox. Dependiendo de los requisitos de su código de barras, es posible que necesite insertar su código de barras (fuente) en el PDF o distribuir la fuente a sus clientes. Cuídese de esos problemas.
Hubo preguntas sobre eso, pero no recientemente, y la tecnología debe haber seguido adelante desde entonces.
Requisitos:
- generar documentos pdf basados en plantillas predefinidas (puedo usar formularios pdf o xsl-fo)
- ser capaz de completar datos textuales
- poder llenar datos gráficos (códigos de barras generados)
- poder alterar la plantilla de PDF en el entorno de producción sin aplicar parches (compilación)
- generar el archivo pdf para guardar en la base de datos (como blob) y / o imprimir
- fuente abierta / libre
Las opciones asumidas son iText, PDFBox, FOP, ¿algo más? ¿Cuáles son las recomendaciones basadas en los requisitos anteriores?
Creo que sus criterios se pueden cumplir tanto con iText como con Apahce FOp, pero aquí tiene algunos criterios adicionales:
- licenciamiento: FOP se basa en la licencia de Apache y, por lo tanto, es "amigable" también para uso comercial
- Flexibilidad: un API de bajo nivel como iText es más flexible que FOP de alto nivel
- Herramientas visuales: hay un diseñador para FOP aquí .
- Modelo de programación: iText se basa en API de programación, mientras que FOP requiere una plantilla XSLFO y menos programación.
- Propietario vs estándar. Apache FOP se basa en un estándar y, por lo tanto, es independiente del proveedor, mientras que iText es una API propietaria.
- Performace: Se dice que FOP es más intensivo en informática. Depende, por supuesto, de los archivos PDF de destino. Nunca fue problema para mí usar FOP.
No usaría PDFBox, es bueno para leer y modificar un archivo PDF existente, pero crear un archivo desde cero utilizando PDFBox puede ser una tarea ardua.
Depende también de qué tan exactamente quieras crear el PDF. FOP funciona desde XML, IText le permite crear programáticamente desde Java.
He hecho un proyecto con Flying Saucer http://code.google.com/p/flying-saucer/ que se basa en iText. Es gratis, fácil de usar, tiene un gran soporte para CSS y tiene un buen código abierto.
Otro aprobado para el platillo volador. Funciona bastante bien y es fácil de usar si está familiarizado con html y css.
Lo que realmente no está documentado es cómo acceder a la funcionalidad incorporada de código de barras de iTexts. Sin embargo, esto se puede lograr fácilmente. He puesto un breve tutorial aquí: http://andreas.haufler.info/2012/12/generating-barcodes-in-pdfs-with-flying.html
Soy un poco parcial (committer), pero sugiero iText.
generar documentos pdf basados en plantillas predefinidas (puedo usar formularios pdf o xsl-fo)
PDF formularios: Cheque
ser capaz de completar datos textuales
Formularios en PDF, consultar. También puede realizar diseño programático.
poder llenar datos gráficos (códigos de barras generados)
Comprobar. Dada una ubicación conocida (que podría ser "la ubicación de esta anotación particular"), iText dibujará un código de barras para usted dada una simbología y valor. Puede deducir una lista de simbologías compatibles a partir de las constantes enumeradas aquí .
Para este tipo de cosas, uso campos de botones con una apariencia de "Solo icono". El "icono" es alguna instrucción de dibujo PDF arbitraria, o una imagen. El material de código de barras de iText creará una PdfTemplate
que puede PdfTemplate
en el botón sin demasiados problemas.
poder alterar la plantilla de PDF en el entorno de producción sin aplicar parches (compilación)
Si todo su diseño está cocido en la plantilla PDF, y su información de "código de barras va aquí" no está codificada en la fuente, entonces está satisfecho.
generar el archivo pdf para guardar en la base de datos (como blob) y / o imprimir
Un PDF es un PDF es un PDF. Diablos, con algo de trabajo adicional de su parte, puede usar iText para compilar archivos PDF / A. "A" es para Archivo.
fuente abierta / libre
Código Abierto: Sí. v2.1.7 fue la última versión en usar MPL. Desde 5.x, todas las versiones de iText han estado bajo el AGPL. Sí, iText se saltó de 2.1.7 a 5.0, para sincronizar la numeración de la versión entre iText e iTextSharp.
No es exactamente "poco f" gratis, pero la versión 2.1.7 no es tan difícil de conseguir. OTOH, es un orfanato, sin mantenimiento. Sé un consumidor informado.
nadie está hablando de BFO (Big Faceless) aunque es comercial