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

編集:これを書いた後まで、テキストファイルを生成する必要があるというコメントは表示されませんでした。役に立つことがわかった場合に備えて、削除する前に少しそのままにしておきます。


Ruportはやり過ぎかもしれません。エビは同じ作者によるPDFライターライブラリで、非常に軽量で使いやすいです。(Ruportが使用する古いPDF :: Writerライブラリよりもはるかに簡単です。実際、Gregory Brownは、RuportのPDF :: Writerに置き換えるという特定の目標を持ってPrawnを作成しました。)

誰かがエビ用の軽量テンプレートエンジンを作成したことさえ覚えていますが、残念ながら、それが誰で、何と呼ばれていたかは覚えていません。しかし、エビのメーリングリストとIRCチャンネルは非常にフレンドリーで親切で、おそらく知っているでしょう。

Railsを使用しているので、 Prawnto Railsプラグインにも興味があるかもしれません。このプラグインはPrawnをRailsのビューエンジンとして登録し、HTMLをレンダリングするのとまったく同じ方法でPDFをレンダリングできるようにします。エビとエビをカバーするRailscastとそれに対応するASCIIcastもあります。

于 2010-03-12T14:30:17.530 に答える
0

出力形式が HTML の場合は、CSS を使用して印刷メディア スタイルシートを作成します。このレイアウトは、比較的簡単に作成できます。

等幅テキストを出力する場合は、スペースを使用してすべてをフォーマットします。使用した空白の量を追跡する必要がある場合があります。これにより、必要な数のスペースを次のブロックに簡単に挿入できます。

于 2010-03-12T14:11:57.153 に答える