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

執筆者:

関連記事

no image

Ubuntu ServerのGuardからネットワーク経由でWindowsのブラウザをリロードする~guard-livereload

Ubuntu12.04.1でCoffeeScriptの自動makeとブラウザの自動リロード~guard-coffeescript   Ubuntu ServerのGuardからGrowl f …

simple_formからdatepickerを使うには~ui_datepicker-rails3

  github.com/kristianmandrup/ui_datepicker-rails3 目次1 Gemfile2 js3 css4 initializer5  使う6 できた G …

backbone-railsのscaffoldで生成されるコードでルーティングとCRUDの処理をどうやってるのか読んでみた

By: asobi tsuchiya   目次1 はじめに2 サンプルの準備3 初期化4 ルーター5 READ6 CREATE7 UPDATE8 DELETE はじめに backbone-r …

Rails4でつかえるインラインエディタを試してみた〜X-editable-rails

目次1 x-editable2 bootstrapを導入3 x-editable-rails4 サンプルアプリ x-editable 文字をダブルクリックして編集できるやつ x-editable vi …

Rails3.2でフォームの順番をjQuery UI sortableで並べ替えてSubmit~acts_as_list