De siempre, los usuarios que fueron forzados a abandonar MSAcces por un motivo u otro; sienten un incontenible necesidad por los “informes”.
A la hora de imprimir, muchos usaurios no entienden que un HTML se imprima. Incluso, habiéndoles hecho un javascript que muestra el diálogo de impresión, simplemente lo cierra y me preguntan “¿y ahora que hago con esto?”
En recientes diálogos con un bibliotecario (que hereda la clase Usuario) me dijo que la gente entiende más de imprimir PDF.
Hacer un PDF me pareció una tare bastante compleja; y lo es, pero Prawn lo hace de una manera casi increíble. Para no aburrirte con el cuento, te mostraré como montarlo arriba del tren.
EjemploController que tu conoce:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
Vamos a dividir en sílabas:
Línea 7
Rails, la acción responde a múltiples mime-types
Línea 10
Rails, application/pdf responde a la extensión PDF format.pdf do
Línea 13
Carga la librería, sí, ya se que en Rails debes hacer eso en un initializer, de cualquier manera, aún, luego de haberlo agregado a tu Gemfile, no te olvides de requerirla, ya sea en un initializer o en el controlador.
Línea 16
Crea un nuevo PDF y almacénalo en la variable de instancia @pdf
Línea 19
El método formatted_text, recibe como argumento un array de hashes
Cada array en un bloque de texto y contiene un hash. La clave :text contiene el texto a renderizar, :size el tamaño y :style el estilo de fuente.
Línea 22
Trazar línea horizontal, el método stroke_horizontal_line recibe como argumento, de donde, a donde debe trazar la línea.
Pasemos a la línea 41
El método render devuelve el PDF. Si lo sacas con puts verás el PDF crudo. Podrías también tirarlo pa un fichero así:
1
|
|
A los usuarios le encantan los PDF, hazlos feliz ;)
Existen dos tipos de personas,
las que hacen lo que le dicen; y,
las que dicen lo que hay que hacer.