linux - online - Crear facturas en PDF: ¿hay soluciones de plantillas?
invoice home (22)
Depende de tu entorno Si tiene acceso a Java, puede consultar iText ( http://www.lowagie.com/iText/ ), una biblioteca que le permite generar archivos PDF sobre la marcha.
Nuestra compañía busca integrar facturas en un nuevo sistema que estamos desarrollando.
Requerimos algunos una solución para crear un diseño de la factura y luego convertir a PDF.
Hemos considerado simplemente preparar la factura en html / css y luego convertirla a pdf. También hemos considerado usar la conversión SVG-> PDf.
Ambas soluciones se integran bien en nuestro lenguaje de plantillas utilizado para nuestra aplicación web.
Históricamente, hemos sido un negocio basado en Microsoft y usamos Crystal Reports para esa tarea, pero estamos buscando una solución Linux de código abierto para este proyecto.
¿Alguien tiene alguna sugerencia de un enfoque o tecnología que podamos usar para tal tarea?
Desafortunadamente, el mejor sistema del mercado (en la actualidad) es pasar el HTML y CSS a un servidor ColdFusion y hacer que devuelva el PDF procesado. Entonces, si el dinero no es una gran preocupación, esta es la solución más rápida de implementar que rendirá los mejores resultados.
He intentado mucho conseguir FPDF, TCPDF, la clase pdf de R & OS e incluso la recomendación de CodeIgniter para que funcionen, pero nada con resultados estables para nada más allá de los archivos HTML más simples.
Honestamente, si la solución de ColdFusion no es viable, usaría html2ps, y luego ps2pdf para convertir sus archivos a PDF.
(Todo esto supone que no desea tomarse el tiempo y diseñar cada PDF utilizando el código nativo de creador de PDF en PHP. Esto es lo que utilizan los sistemas como SugarCRM. Aunque es muy funcional con resultados estables, la creación real de cada uno PDF-generador de archivos es un proceso muy doloroso)
Este sitio html-2-pdf puede ser un punto de partida útil: http://maarten.lippmann.us/?p=101
Un sitio que un amigo mío construyó utiliza una secuencia de comandos para generar también páginas HTML en PDF imprimibles: http://philambdaupsilon.org . No estoy seguro de los detalles exactos, pero él es un usuario SO, y le enviaré esta pregunta también a él.
Hemos usado los informes de Jasper antes. No es lo que llamarías fácil de usar, pero hablará directamente con tu base de datos.
Intenta esto ... crea una factura en blanco con Word (o lo que quieras) y guárdalo como PDF.
Luego use una biblioteca PDF para modificar el PDF (inserte el texto en coordenadas particulares). Hacemos esto en el mundo de Microsoft y es extremadamente fácil.
El mayor beneficio es que podemos usar nuestras propias herramientas para crear y modificar la plantilla. Si queremos agregar texto estático, solo abrimos Word, realizamos el cambio y lo guardamos en un archivo PDF (que se está utilizando como plantilla).
Para Microsoft, usamos iTextSharp, que en realidad es un puerto C # de la versión original de iText de Java
Adicionalmente...
Puede usar Adobe Acrobat para insertar campos en el PDF (dirección, teléfono, número de factura, línea de pedido 1, línea de pedido 2, etc.) y luego utilizar iText / iTextSharp para rellenar estos campos en tiempo de ejecución.
Esto es, en más detalle, lo que hacemos ... y es extremadamente fácil.
No estoy seguro de cuál es su objetivo aquí, pero hay una biblioteca php de código abierto llamada fpdf, que también tiene una extensión para tomar un pdf prefabricado como diseño y luego poblarlo con más contenido, generando un nuevo PDF con esa información.
Sin embargo, buscaría una solución que pueda integrarse muy bien en la plataforma que está creando, pero no entraría en una solución HTML-> PDF ya que no tendrá ni idea de qué cabría en una pieza de papel con respecto a los tamaños en ese tipo de entorno, lo que significa que no sabrá cuándo debe dividir el contenido en dos plantillas separadas.
Probablemente la solución más flexible es crear XML con datos de factura y luego, mediante el uso de XSLTs, transformar el archivo en PDF, HTMls, lo que sea ...
Usamos Reportlab con Python. Si miras a tu alrededor, hay una gran cantidad de formularios / facturas / etc preparados.
Anteriormente, he producido facturas mediante la creación de plantillas de un archivo PostScript, y luego usando ps2pdf
de Ghostscript para convertirlas en archivos PDF.
La forma normal es instalar (La) TeX (probablemente ya en el cuadro de Linux) y ejecutar pdflatex para obtener los pdfs. También puede utilizar Apache FOP, si prefiere xslt y xsl-fo.
Si el número de facturas para crear es bajo, es posible que desee utilizar open-office (directamente o como un conjunto de herramientas).
Si desea un posicionamiento de alta precisión y acceso de bajo nivel, una biblioteca de PDF de bajo nivel (no sé si iTextSharp funciona con mono) podría ser lo que usted desea.
Primero probaría LaTeX, porque te permite obtener resultados con el mínimo esfuerzo.
html2pdf funciona muy bien. Puede usar esto para generar informes HTML y PDF de la misma fuente.
Estoy jugando con Black Sheep Invoices en este momento, lo cual es genial al principio, pero ahora estoy teniendo problemas para procesar los archivos PDF. Muchas dificultades de instalación, probablemente mucho más fácil en su propio servidor, pero tengo un host compartido con él. Las partes de gestión de datos y salida de HTML están bien hechas, lo cual es algo que no obtendrás simplemente creando una plantilla de postscript. Esperaba encontrar una referencia a una biblioteca que tiene un equipo de desarrollo activo (Black Sheep no se actualiza en este momento).
OK, una búsqueda en los proyectos de Google Code arrojó Simple Invoices , que es increíble y está bien mantenida.
Si desea que el navegador HTML perfecto se convierta en PDF, intente con Commandlineprint
Tendrá que instalar Firefox en una distribución de Linux, deshabilitar todas las alertas de Firefox y luego ejecutarlo a través de una pantalla virtual. Verifique este hilo para más detalles.
Es exasperante correr bien, pero te ofrezco los mejores resultados para la conversión de HTML a PDF que he visto.
También puede intentar usar XSL: FO. XSL: FO es un estándar documentado para describir el diseño de página: http://www.w3.org/TR/xsl/#fo-section .
He tenido éxito en dos proyectos creando documentos creando un esquema XML que define el contenido del "PDF". Luego uso la herramienta XSD (de Microsoft) para generar una clase que represente este documento. Luego, asocie mis datos en esa estructura, serialice la clase poblada a XML, junto con una hoja de estilos XSL que defina cómo se deben mapear esos datos en FO, y páselos a un formateador FO. Para los formateadores, he usado Alt-Soft''s Xml2Pdf con éxito. Hay algunos otros por ahí. Hay algunas herramientas disponibles para ayudar a crear la hoja de estilos de XSL a FO (es decir, stylusstudio y XmlSpy), pero recomiendo aprender las construcciones de FO ya que las herramientas parecen producir hojas de estilo hinchadas. FO es comparable a HTML (donde una etiqueta P es una etiqueta BLOQUE en FO), pero puede ser complicado. Lo bueno de FO es que algunos formateadores admiten la conversión a otros formatos, como Word, HTML, etc.
Otras opciones:
iTextSharp (puerto C # de iText). Acabo de empezar a leer sobre esto. Código abierto y gratis. No creo que haya ninguna "plantilla" apoyada con esto, pero podría estar equivocado al respecto.
SQL Server Reporting Services. Suponiendo que los datos de su factura están en, o pueden incluirse, en un formato que puede leer los servicios de informes (SQL Server, Web Service, etc.), defina el diseño en SSRS y luego publíquelo en el servidor de informes. Use los servicios web de SSRS o la ejecución de parámetros de consulta para ejecutar el informe y hacer que se emita como PDF.
Hay dos pasos, si entendí correctamente:
1) Creación de una plantilla PDF con marcadores de posición para completar datos mediante programación
2) Rellenar la plantilla PDF programáticamente durante el tiempo de ejecución
Para el n. ° 1, OpenOffice permite la creación de plantillas PDF, que luego se pueden llenar programáticamente. Es lo suficientemente bueno para crear facturas simples que probablemente no involucran datos de tabla / tabla de datos.
Para el n. ° 2, ya tiene las respuestas aquí: iText, iTextSharp.
¡Espero que esto ayude!
Uso TROFF para mis facturas debido a su codificación textual extremadamente simple. La lógica es unas pocas líneas de Perl. Manteniéndolo simple.
Me encanta wkhtmltopdf http://code.google.com/p/wkhtmltopdf/
Para una solución de Ruby, prueba Prawn: http://prawn.majesticseacreature.com/
Utilizo Open Office en el servidor y luego genero el XML para el documento (simplemente descomprima el documento y corte)
Algunos pueden usar el editor de plantillas Dhek para definir el área / marcador de posición para el PDF existente, sin alterar el documento existente, y luego llenarlo para generar el documento final (por ejemplo, con los valores del usuario de un formulario): https://github.com/applicius/dhek .
Hay varios motores de informes de OSS ( Jasper Reports , Pentaho y BIRT, por nombrar tres) que podría usar de la misma manera que históricamente utilizó Crystal Reports. Uno de los otros carteles menciona ReportLab , que es una opción si está usando Python o puede incorporar un tiempo de ejecución de Python en su aplicación.