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

Rubyでxmlの要素の追加など~nokogiri

目次1 はじめに2 文字列をパースしてxmlとして読み込んでそのままxmlとして出力する3 nodeの追加4 nodesetの作成と追加5 DocumentFragmentの作成と追加 はじめに 参考 …

Rails3.2でJasmineをつかってCoffeeScriptをテスト~jasminerice

    #261 Testing JavaScript with Jasmine (revised)   addyosmani.github.com/backbone-f

Ubuntu ServerのGuardからGrowl for Windowsにネットワーク経由で通知する

github.com/guard/guard 普段はWindows7から仮想環境(VirtualBox)のUbuntu Server 12.04.1へputtyで接続して開発してます. Virtual …

Rails5でコントローラーの記述を省略~inherited_resources

By: Simon Matzinger – CC BY 2.0 目次1 inherited_resources2 Gemfile3 使い方 inherited_resources inhe …

Rails4.1に対応したRefinery CMS 3.0を試してみた

By: Alexis Madrigal – CC BY 2.0 目次1 Refinery CMS2 Gemfile3 generate4 configファイル5 起動6 管理画面7 トラブ …