RubyOnRailsで帳票印刷

Rails4でOpenDocumentText(.odt)を作成~serenity

投稿日:

Rails4でOpenDocumentText(.odt)を作成~serenity(未完)

Rails3.2でOpenDocumentText(.odt)を作成~serenity

theooさんのフォークを使えば日本語も通りました!

github.com/theoo/serenity

Gemfile

テンプレートファイルを作る

SerenityのREADMEドキュメントを参考にodtファイルを作成する

screenshot

*テンプレートはこちらのものを使用させてもらいました。

templates.openoffice.org/ja/template/qing-qiu-shu-tenpureto

Model

モデルなどで、Serenity::Generatorをインクルードして、テンプレート中の@変数を定義して、render_odtでOK

Controller

コントローラーなどでsend_fileしてやれば

できた!

こんなデータから

screenshot

こんなodtファイルを作れるよ!

 

screenshot

カンマの挿入で地味にハマってる。。。

カンマの挿入に対応

ハマったパターン

1000とかは1,000にできるけど、なぜか10000が1,000になってしまうのでだめ

number_to_currencyをつかう

number_to_currencyはModelからは使えないので無理に

テンプレート内のイテレータ下の数字(order.product.price)とかは、代入の段階でうまくnumber_to_currencyできないので、別メソッドを作って対応

テンプレートの方でpriceではなくprice_to_currencyを呼ぶように変更

できた

screenshot

サンプルをGitHubに公開

github.com/seventhsense/claim_system

 

-RubyOnRailsで帳票印刷
-

執筆者:

  • yakoko

    はじめまして。Rails初心者ですが、請求書作成の記事を拝見させていただきました。

    素晴らしいと思いまして、サンプルを動作させてみましたが、ファイル名を入力してダウンロードしようとしますと、下記の様なエラー画面が出てしまいました。

    「NameError in DocumentsController#create」
    「undefined local variable or method `charges’ for #<Document:0x007f98012ab908>」
    ●開発環境

    Mac   MountainLion

    ruby  2.0.0p247

    Rails 4.0.2

    勝手を言いまして申し訳ございませんが、何かお心当たりなどありましたらアドバイスをいただけたらと思います。宜しくお願い致します。

    • seventh

      ためしていただいてありがとうございます。

      ざっくり作ったのでエラー処理がほぼしてないのです。
      請求書には、商品登録と顧客登録が必須なのにチェックしてないためです。
      お手数ですが、一度データベースをリセットして
      rake db:reset
      先に商品と顧客を登録してから、請求書を作成してみてもらえますか。

      また、気づいたら、odtのテンプレートが登録されてませんでした。
      githubの方にアップし直しましたので
      git pull
      または
      git pull -f
      してみてください

  • yakoko

    ご連絡ありがとうございました。

    アドバイスいただきました内容でダウンロードまで出来ました。

    お忙しいところご対応いただきまして本当にありがとうございました。

    今後とも宜しくお願い致します。

関連記事

docxをhtmlに変換する~ydocx

  github.com/zdavatz/ydocx プレビューの見た目を少しよくしたくて良さげなパーサーを試してみた 準備

no image

Rails3でrtfを出力

  rtfはリッチテキストフォーマット、ms wordなどで扱えるほか、標準添付のwordpadなどでも扱える config/initializers/mime_types.rbを編集 [c …

no image

Rubyからdocxを生成する

    前提 Rubyでdocxをいろいろ分析してみた 変数の仕様~正規表現 いろいろなパターンで試してみた 例えば、こんな文 [crayon-5928c9e24e7a822498 …

no image

Rubyでエクセル帳票印刷(.xls)~spreadsheet

  pdfとdocxとxlsが作成できれば帳票印刷で困ることはなさそう spreadsheetというgemを使ってみた 参考 dragonstar.asablo.jp/blog/2009/0 …

Rails4でerbぽいテンプレートからdocxを作成〜docx_templater

By: Kanko* – CC BY 2.0 github.com/jawspeak/ruby-docx-templater 調子に乗って昔失敗したジェムをまた試してみた 目次1 準備2 …