120529 railsとか勉強会v2
TRANSCRIPT
PDFRender :pdf
Rails3系対応WickedPDFで簡単PDF出力
2012/05/29 【第2回】Railsだったり勉強会土岐佳輝 @tokyoster
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
自己紹介(1)•土岐佳輝(とき よしてる)
• Twitter:@tokyoster <-Tok(i)Yos(hi)ter(u)• ※tokyosterでエゴサーチするとモデルさんのページが出てきますが関係ないです><
• 慶應義塾大学理工学部物理情報工学科(情報工学科じゃない科)
• 同理工学研究科修士
• 同理工学研究科博士課程←now!
• MATLABで医療系の画像処理してます
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
自己紹介(2)• 30min. のアルバイトプログラマー(‘09.10~)
• 携帯版,Android版,スマホブラウザ版
• Railsでの受託開発(1件目)
• Androidゲーム開発(1件目)
• 色間違い https://play.google.com/store/apps/details?id=net.tokyoster
• 最近mbed(マイコンボード)買った
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
要するに•人生迷ってる興味範囲の広いプログラマー
• LangTurn: 優秀なプログラマを見分ける方法 http://langturn.com/translations/58?locale=ja
• “彼らはそれら技術の全てに精通してないかもしれないが、全てのまともなプロ
グラマは関連のない技術の大きなリストを使いこなしていくだろう”
• っていうのを信じたい
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
そもそも
•一週間前に急にDMが Σ
•しかも勉強会というのが初参加
•テーマを決めなくちゃ
•何なら話がかぶらない?役に立ちそう?
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
テーマ?
•受託で請求書の発行機能をつけることに
•PDFに出力したほうがいいんじゃない?
•印刷○,ファイル保存○,メール送付○
•請求書をRailsからPDFで出力させよう!
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
Rails + ? = PDF• TeX で組版すれば良いんじゃね?
• こないだ論文書く時に使ったし(理系)
• ERBを通せばいけるんじゃねえの\begin{table}[htbp]\begin{tabular}{|r|r|r|r|} \hline月 & 日 & 品名 & 単価 &数量 & 小計 \\\hline<% for order in @orders %><%= h order.mm %> & <%= h order.dd %> & <%= h order.item_name %> & <%= h order.item_price %> & <%= h order.number %> & <%= h order.item_price * order.number %> \\\hline<% end %>\end{tabular}\end{table}
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
Rails + TeX? = PDF
•・・・でも普通の人ってTeX使わないよね• そもそもインストールが大変だし
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
Rails + ? = PDF•Google先生に聞いてみよう
•「Rails PDF出力」
• prawnto というのがあるらしい
•Rails3になって死んだらしい・・・
• Generate pdf from Rails 3 - what tool to choose? - Stack Overflow http://stackoverflow.com/questions/4117884/generate-pdf-from-rails-3-what-tool-to-choose
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
Rails + ? = PDF•結論:今ならWickedPDF が良いらしい
• Githubをみたところ最近も更新されてる様子• mileszs/wicked_pdf · GitHub https://github.com/mileszs/wicked_pdf
• そして日本語の記事がほぼない(新規性○)
• Rails3系でPDFを出力したい人に役に立つb
•・・・かも?(そもそもいるのか?)
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
本日のテーマ
まどマギ ジェネレーター - まどかマギカ風画像を自動生成 http://magi.md/
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
開発環境
•Mac Lion(10.7.4)
• RVM 1.8.5
• Ruby 1.9.2
• Rails 3.2.3
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
何はともあれ骨組み作り
rvm gemset create pdf_billsgem install railsrails new pdf_billsrails g scaffold orders item_name:string item_price:integer item_num:integerrake db:migrate
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
WickedPDFのGem追加
•Gemfile
gem 'wicked_pdf' gem 'wkhtmltopdf-binary'
• bundle install
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
ControllerからPDF出力
•app/controllers/order_controller.rb class OrdersController < ApplicationController def index @orders = Order.all
respond_to do |format| format.html # index.html.erb format.json { render json: @orders } format.pdf do render :pdf => "orders", :layout => false, :template => '/orders/index.html' end end end
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
結果(1)•開いてみる(localhost:3000/orders)
rails s
•適当に登録
•12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
結果(1)• localhost:3000/orders.pdf
•文字化けした...
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
わけがわからないよ• 多分UTF-8の問題ということでGoogle先生に聞く
• 「WickedPDF UTF-8」
• https://github.com/mileszs/wicked_pdf/issues/35
• <meta http-equiv="content-type" content="text/html; charset=utf-8" />
•が,必要らしい.
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
UTF-8対応に修正•app/controllers/orders_controller.rb
• render :pdf => "orders", :layout => false, :template => '/orders/index_pdf'
• app/views/orders/index_pdf.erb
• layout含め作成,headに追記
• <meta http-equiv="content-type" content="text/html; charset=utf-8" />
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
結果(2)• ちゃんと表示された!
•12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
もっと請求書らしく•総額表示とかつけたり
• app/controllers/order_controller.rb@[email protected]{|o|o.item_num*o.item_price}
• app/views/orders/index_pdf.erb<%= h @total_price %>
• CSSも作成
• app/assets/stylesheets/bill.css
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
WickedPDFのHelper• app/views/orders/index_pdf.erb• <%= wicked_pdf_stylesheet_link_tag "bill" %>
•他に画像・JS等も専用ヘルパを使う
•フルパスを指定する必要があるらしい• <%= wicked_pdf_javascript_include_tag "pages" %>
• <%= wicked_pdf_image_tag "mysite" %>
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
index_pdf.erb<!DOCTYPE html><html><head> <title>PDF Bills</title> <%= wicked_pdf_stylesheet_link_tag "bill" %> <meta http-equiv="content-type" content="text/html; charset=utf-8" /></head><body> <h2 class="bill_ttl"><span>請求書</span></h2>
<div class="leftbox"> <div class="customer_address"> <div class="customer_postal_code">〒 123-4567</div>
<div class="customer_address_detail">見滝原市見滝原町10-3</div> </div> <div class="customer_name"><span>鹿目 まどか 様</span></div>
<div class="total_price"> <span>請求額</span><span class="total_price_price">¥<%= h @total_price %></span> </div> </div> <div class="rightbox"> <div class="logo">QB商事(◕‿‿◕)</div>
<div class="representative_name">担当者:キュゥべえ</div>
<div class="address">見滝原市見滝原町9-8</div> </div> <table class="order_detail"> <tr><th width="370">商品名</th><th width="50">数量</th><th width="50">単価</th><th width="80">金額</th></tr>
<% @orders.each do |order| %> <tr><td class="td_left"><%= h order.item_name %></td><td><%= h order.item_num %></td><td><%= h order.item_price %></td><td><%= h order.item_num * order.item_price %></td></tr> <% end %> <tr><td>*** 小計 ***</td><td></td><td></td><td><%= h @total_price %></td></tr> </table></body></html>
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
結果(3)•かなり請求書らしい感じにできた!
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
まとめ•PDFで出力させるのって簡単!
• gem 'wicked_pdf'
• gem 'wkhtmltopdf-binary'
• render :pdf
• <meta http-equiv="content-type" content="text/html; charset=utf-8" />
• (TeXと連携するとか言わなくて良かった)
12年5月29日火曜日
2012/05/29 【第2回】Railsだったり勉強会Render :pdf Rails3系対応WickedPDFで簡単PDF出力
参考資料• Generate pdf from Rails 3 - what tool to choose? - Stack Overflow
http://stackoverflow.com/questions/4117884/generate-pdf-from-rails-3-what-tool-to-choose
• PDF Generation with Wicked pdf in Rails « Abhilash ak's Blog http://akabhilash.wordpress.com/2010/11/27/pdf-generation-with-wicked-pdf-in-rails/
• mileszs/wicked_pdf https://github.com/mileszs/wicked_pdf
• Issue #35: Encoding issues · mileszs/wicked_pdf https://github.com/mileszs/wicked_pdf/issues/35
• まどマギ ジェネレーター - まどかマギカ風画像を自動生成 http://magi.md/
12年5月29日火曜日
ご清聴ありがとうございました!
12年5月29日火曜日