A formatação de texto em Ruby (para a embalagem desliza)
-
19-09-2019 - |
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
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 .