Railsで使えるGem RubyOnRailsで帳票印刷

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

投稿日:

 

これも途中経過デス

 

odtはOpenOffice.orgのwriterなんかの保存形式

serenityはerbライクなodtテンプレートから変数を利用して文書を作成してくれる

github.com/kremso/serenity

Gemfile

gem の名前がここだけ-odtがつくので注意

それで、例えば、付属のshowcase.odtをapp/templateというディレクトリを作成してコピーしておく

手っ取り早くコントローラーかなにかでサンプルのとおりに試してみる

で、viewにgenerate_showcaseへのリンクをつくってroutes.rbを設定すれば

app/template/にhello_output.odtができてる!

なかみもうまくできてる

 

うまくいったのはここまで

Libre Office 3.6をダウンロードしてテンプレートを作成してみた

またエラーorz

今回はうまくいったテンプレートと自分で作ったテンプレートを比較してみた

↓使ったソフト

www.forest.impress.co.jp/docs/review/20120123_506326.html

フォント名とかが日本語になってる

試しに元のテンプレートに日本語を足してみる

すると、無事(!?)エラーがでた

gemのソースをよく読んでマジックコメントを足していかないとだめぽい

fixtureにあるテンプレートをみるとギリシャ語とかは通ってるっぽいのになぁ

*specファイルを参考に日本語テンプレートを用意してやってみました

とおりやがった

試しにさっき失敗したファイルも

通ってしまうorz

rails上で試した時だけencodingのエラーが出るんだよなぁ

これはdocxのときと同じ うーん

エラーの場所はdocxと同じでやはりfile をwriteしているところ…(template.rbの22行目)

enviroment.rbにEncodingをかいたりしてみたけどダメだ.

*思い余ってStackOverflowに質問してみました.ニッチすぎるかな…

stackoverflow.com/questions/13080178/encodingundefinedconversionerror-xe9-from-ascii-8bit-to-utf-8-when-using

*思いついてsinatraで試してみたがダメ

ただし、railsでもserenityでも変数の値が日本語の場合は通ることがわかった.

テンプレート内に日本語がある場合、フォントに日本語名がついてる場合(MS ゴシックとか)はエラー.

いっそのこと全部変数にしてやろうか…

 

*変数を日本語にしてやってみました

テンプレートはこんな感じ

で、こんなかんじでメソッドを書いてみると

こんな感じのができる.おおっ!それっぽい

 

*こんなイシューをみつけましたが(まだ反映されてないので自分でソースを修正)、うまくいきませんでした.日本語入りのテンプレートは動きません.

-Railsで使えるGem, RubyOnRailsで帳票印刷
-,

執筆者:

関連記事

RailsでECサイト構築7 デプロイ~spree+apache2+passenger

  前提 Rails3.2のアプリをデプロイ~apache+passenger+postgresql Rails3.2+Apache2+Passenger環境でSSLを使ってみる &nbsp …

no image

Ubuntu server12.04でRails4とPostgreSQL9.3をつかう〜hstoreとか

目次1 準備2 rails new3 config/database.yml4 hstoreとarrayを試してみる 準備 Ubuntu server12.04にPostgreSQL9.3をインストー …

Rails4で複雑な検索〜Ransack

By: eric molina – CC BY 2.0 株価データをつかって複雑な絞り込み検索ができるようにしてみた データは、こちらのサンプルを使わせていただいた datawarehou …

SimpleCovのカバレッジをvimに表示させる~simplecov-vim

      github.com/nyarly/Simplecov-Vim 参照 Rails3でテストカバレッジを計測する~simplecov,thin 自分のgem上の …

Rails4とD3.jsでローソク足グラフを描く〜d3.js編

前回 Rails4とD3.jsでローソク足グラフを描く〜Rails準備編 目次1 jsonデータ2 y_scaleを考える3 始値と終値から箱をつくる4 高値と安値でひげをつくる5 y_axisをつけ …