Pergunta

Eu preciso gerar deslizamentos de embalagem texto formatado para um Ruby on Rails projeto que estou trabalhando. Estou pensando em usar Ruport ou apenas formatá-lo sozinho em uma corda e saída para texto. O único desafio é justificar toda a saída de forma apropriada. Ele precisa ser algo como isto, sempre alinhados. Quaisquer recomendações?

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
Foi útil?

Solução

Como FM já foi sugerido, você pode usar sprintf:

"%10s %-10s %10s" % ['abc', 'def', 'ghi'] # use negative numbers for left alignment
#=> "       abc def               ghi"

E se você precisa de algo mais sofisticado, tente usar algum mecanismo de modelagem padrão, como erb ...

Outras dicas

Se o seu formato de saída é HTML, uso de CSS para fazer uma folha de estilo de impressão de mídia. Esta disposição seria relativamente fácil de fazer dessa forma.

Se você estiver saída texto monoespaçada, espaços de uso para o formato de tudo. Você pode ter que controlar o quanto de espaço em branco que você usou. Isso garante que você pode simplesmente inserir o devido número de espaços para o próximo bloco.

EDIT: Eu não vi o comentário sobre a necessidade de gerar arquivos de texto até depois que eu escrevi isso. Vou deixá-lo até um pouco antes de excluí-lo, no caso de ele sair para ser útil.


Ruport pode ser um exagero. camarão é uma biblioteca PDF escritor pelo mesmo autor que é muito leve e fácil de usar. (Muito mais fácil do que a antiga biblioteca PDF :: Escritor que usos Ruport. Na verdade, Gregory Brown escreveu camarão com o objetivo específico para substituir a PDF :: Escritor em Ruport.)

Eu me lembro que alguém crie um mecanismo de modelagem leve para camarão, mas infelizmente eu não me lembro quem era ou o que é chamado. Mas a lista de discussão do camarão e do canal IRC são extremamente simpáticos e prestativos, eles provavelmente sabem.

Uma vez que você estiver usando Rails, você pode também estar interessado no Prawnto Rails plugin de , que registra camarão como um mecanismo de exibição no Rails, e permite que você processar seus PDFs exatamente da mesma maneira que você tornar o seu HTML. Há também um Railscast que cobre do camarão e Prawnto e uma correspondente ASCIIcast .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top