Форматирование текста в Ruby (для упаковочных листов) - PullRequest
2 голосов
/ 12 марта 2010

Мне нужно создать упаковочные листы для форматированного текста для проекта Ruby on Rails, над которым я работаю. Я подумываю использовать Ruport или просто отформатировать его в строку и вывести в текст. Единственная проблема - правильно обосновать все результаты. Это должно выглядеть примерно так, всегда правильно выровнено. Любые рекомендации?

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

Ответы [ 3 ]

5 голосов
/ 12 марта 2010

Как FM уже предложено, вы можете использовать sprintf:

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

А если вам нужно что-то более сложное, попробуйте использовать какой-нибудь стандартный шаблонизатор, такой как erb ...

0 голосов
/ 12 марта 2010

РЕДАКТИРОВАТЬ: я не видел комментарий о необходимости создания текстовых файлов, пока я не написал это. Я собираюсь на некоторое время оставить его перед удалением, если это окажется полезным.


Ruport может быть излишним. Prawn - библиотека писателя PDF того же автора, очень легкая и простая в использовании. (Гораздо проще, чем старая библиотека PDF :: Writer , которую использует Ruport. На самом деле Грегори Браун написал Prawn с конкретной целью заменить на PDF :: Writer в Ruport.)

Я даже помню, что кто-то создавал легкий шаблонный движок для Prawn, но, к сожалению, я не помню, кто это был и как он называется. Но список рассылки Prawn и IRC канал очень дружелюбны и полезны, они, вероятно, знают.

Поскольку вы используете Rails, вас также может заинтересовать плагин Prawnto Rails , который регистрирует Prawn как движок представления в Rails и позволяет вам отображать ваши PDF-файлы точно так же, как вы делаете HTML. Есть также Railscast, который охватывает Prawn и Prawnto и , соответствующий ASCIIcast .

0 голосов
/ 12 марта 2010

Если ваш выходной формат - HTML, используйте CSS для создания таблицы стилей для печатных носителей. Эту схему было бы относительно легко сделать таким образом.

Если вы выводите моноширинный текст, используйте пробелы для форматирования всего. Возможно, вам придется отслеживать, сколько пробелов вы использовали. Это гарантирует, что вы можете просто вставить нужное количество пробелов в следующий блок.

...