2

我需要为我正在处理的 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
4

3 回答 3

5

正如 FM 已经建议的那样,您可以使用sprintf

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

如果您需要更复杂的东西,请尝试使用一些标准模板引擎,例如erb ...

于 2010-03-12T17:39:40.460 回答
0

如果您的输出格式是 HTML,请使用 CSS 制作打印媒体样式表。这种布局相对容易实现。

如果您要输出等宽文本,请使用空格来格式化所有内容。您可能需要跟踪您使用了多少空白。这确保您可以简单地将适当数量的空格插入下一个块。

于 2010-03-12T14:11:57.153 回答
0

编辑:直到我写完这篇文章后,我才看到关于需要生成文本文件的评论。在删除它之前,我将保留它一段时间,以防它变得有用。


Ruport可能是矫枉过正。Prawn是同一作者的一个 PDF 编写器库,非常轻量级且易于使用。(比 Ruport 使用的旧PDF::Writer库要容易得多。事实上,Gregory Brown 编写 Prawn 的具体目标是在 Ruport 中替换为 PDF::Writer。)

我什至记得有人为 Prawn 创建了一个轻量级的模板引擎,但不幸的是我不记得那是谁或它叫什么。但是 Prawn 邮件列表和 IRC 频道非常友好和乐于助人,他们可能知道。

由于您使用的是 Rails,您可能还对Prawnto Rails 插件感兴趣,该插件将 Prawn 注册为 Rails 中的视图引擎,并允许您以与呈现 HTML 完全相同的方式呈现 PDF。还有一个涵盖 Prawn 和 Prawnto 的 Railscast以及相应的 ASCIIcast

于 2010-03-12T14:30:17.530 回答