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

執筆者:

関連記事

Rails3.2とBackbone.jsでサーバーサイドのページネーション

By: Haldane Martin – CC BY 2.0   前提 Rails3.2とBackbone.jsでサーバーサイドのフィルタリング Rails3.2とBackbon …

RailsでHTML5対応のvideoプレイヤーを利用してみる~flowplayer5.0.0

  参考 flowplayer.org/ Flowplayerのサイトからバージョン5.0.0がダウンロードできる flowplayer-gemのバージョンは3.2.4 バージョン5では基本 …

Rails4.2でselectを絞込できるselect2を使ってみた〜select2

By: Metropolitan Transportation Authority of the State of New York – CC BY 2.0 目次1 select22 Ge …

Rails3.2からMongoDBを使ってアプリをつくってみる~mongoid

MongoDBはとても素直で扱いやすいということがわかってきたので、以前作成した郵便番号・住所の相互検索アプリをまたつくってみた 参照 MongoDBのチュートリアルをこなす KEN_ALL.CSVを …

Rails3.2のアプリをデプロイ~apache+passenger+postgresql

  環境 ubuntu server 12.04 目次1 postgresql2 apache+passenger3 デプロイ準備 postgresql インストール 参照 Ubuntu s …