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
¿Fue útil?

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 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top