Formato de texto en Ruby (Para albaranes)
-
19-09-2019 - |
Pregunta
necesito para generar albaranes de texto con formato de un proyecto Ruby on Rails que estoy trabajando. Estoy considerando el uso de Ruport o simplemente darle formato a mí mismo en una cadena y dando salida a texto. El único desafío es justificar la totalidad de la salida adecuadamente. Tiene que ser algo como esto, siempre alineados correctamente. ¿Alguna recomendación?
Company Name
(T) 1-800-123-1234
(E) info@company.com
BILL TO: CUSTOMER NAME SHIP TO: CUSTOMER NAME
123 Some Street 321 Some Street
Address etc. Address etc.
Date: 2010-03-12 16:30
Payment Number: 1234-123456
LN NAME SKU DESCRIPTION QTY PRICE TOTAL
----------------------------------------------------------------------------------
001 Product name GUDB 012 HGQ product description 2 52.99 105.98
- Color
Solución
Como ya se ha sugerido FM, puede utilizar sprintf
:
"%10s %-10s %10s" % ['abc', 'def', 'ghi'] # use negative numbers for left alignment
#=> " abc def ghi"
Y si necesita algo más sofisticado, trate de usar un poco de motor de plantillas estándar, como erb ...
Otros consejos
Si el formato de salida es HTML, CSS para hacer uso de una hoja de estilo medios impresos. Esta disposición sería relativamente fácil de hacer de esa manera.
Si va a la salida de texto solo espacio, utilice espacios para formatear todo. Puede que tenga que realizar un seguimiento de la cantidad de espacio en blanco que haya utilizado. Esto asegura que sólo tiene que insertar el debido número de espacios para el siguiente bloque.
EDIT: No he visto el comentario sobre la necesidad de generar archivos de texto hasta después de escribir esto. Voy a dejarlo hasta un poco antes de eliminarlo, en caso de que resulta ser de utilidad.
Ruport puede ser excesiva. gambas es una biblioteca creador de PDF por el mismo autor que es muy ligero y fácil de usar. (Mucho más fácil que el viejo PDF :: escritor biblioteca que utiliza Ruport. De hecho, Gregory Brown escribió gambas con el objetivo específico de reemplazar a PDF :: escritor en Ruport.)
incluso recuerdo que alguien cree un motor de plantillas ligero para gambas, pero por desgracia no me acuerdo quién era o cómo se llama. Pero la lista de correo de gambas y el canal de IRC son extremadamente amable y servicial, es probable que saben.
Desde que está utilizando rieles, éstos también debería estar interesado en el Prawnto rieles complemento , que registra la gamba como un motor vista en Rails, y permite renderizar sus archivos PDF de la misma manera exacta renderizar el código HTML. También hay un Railscast que cubre la gamba y Prawnto y un correspondiente ASCIIcast .