Guardar render de una vista


#1

hola, tengo un controlador para la gestion de la creación de pdf’s,
quiero añadir un método para hacer un zip con todos lo anteriores
dentro. El tema zip ya lo tengo claro como hacer-lo pero el problema
esta que no se como des de un metodo de un controlador llamar los
renders de los pdf’s, guardar-los en el directorio temporal para
despues generar el zip.

Alguna sugerencia?

muchas gracias


#2

Como generas los PDF? qué plugin usas? a partir de qué datos los generas?

Si los datos del PDF están guardados en la base de datos entonces es muy
fácil. De lo contrario lo que tienes que hacer es irlos almacenando en
el filesystem a medida que los generas.

Yo por ejemplo tengo una app en la que genero facturas en PDF usando
“pdf-writer”, y al final del render envío el archivo sin guardarlo en
filesystem. Lo hago así porque los datos de cada factura están guardados
en la base de datos.
Si generase una factura on-the-fly sin extraer los datos de la base de
datos, lo que haría sería almacenar la factura en el filesystem. Crearía
un directorio para las facturas de cada mes y metería dentro los
PDF’s… y después de eso lo que enviaría al browser sería el enlace al
fichero almacenado.

Salu2!


Real_men_dont_need_spacebars


#3

solucionado, genero los pdf’s con un plugin que yo mismo me hice
“render_as_pdf”
http://github.com/lleirborras/render_as_pdf
que coge una vista html y permite hacer cabeceras dinamicas que se
repitan entre paginas y muchas cosas chulas con la facilidad de
maquetar y hacer pruebas en html.

Utilitzando una funcion cojo el pdf resultante como stream de datos y
lo meto en ficheros temporals que posteriormente comprimo en zip y lo
entrego al cliente.

Muchas gracias por todo

2009/3/5 Iván Belmonte removed_email_address@domain.invalid: