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で帳票印刷
-

執筆者:

関連記事

今度こそRails3.2からdocxを生成する

目次1 前提2 構想3 アップロード4 スキームの保存5 docxの生成6 レイアウトと画面遷移を考える7 データの更新8 データの削除 前提 Rubyからdocxを生成する 前回、イキオイアマって自 …

no image

Rails3.2で関連するモデルのフォームをあわせて表示~accepts_nested_attributes_for & fields_for

Railsで関連するモデルのフォームを表示するメモ またハマったので手順をメモ 目次1 Model2 View3 Controllerでもどこでも Model [crayon-5c95d21d29c3 …

no image

RubyでDocxを分解してみた~Nokogiri::XML::SAX

    参照 Rubyでdocxをいろいろ分析してみた 今度はsaxのアプローチでdocxのword/document.xmlを分解してみた 使い方は、Nokogiri::XML: …

no image

Railsでdocxを生成する動画2

このあたりの機能を説明しています 状況に応じてRailsのフォームの種類を変える

Rails4でdocxを読み書き〜gem docx

By: Jesús Corrius – CC BY 2.0 github.com/chrahunt/docx rubyでもいいんだけど、rubygemでのバージョンが最新でなかったのでRa …