Contenu connexe
Similaire à 120529 railsとか勉強会v2 (20)
120529 railsとか勉強会v2
- 1. Render :pdf
Rails3系対応WickedPDFで
簡単PDF出力
PDF
2012/05/29 【第2回】Railsだったり勉強会
土岐佳輝 @tokyoster
12年5月29日火曜日
- 2. 自己紹介(1)
• 土岐佳輝(とき よしてる)
• Twitter:@tokyoster <-Tok(i)Yos(hi)ter(u)
• ※tokyosterでエゴサーチするとモデルさんのページが出てきますが関係ないです><
• 慶應義塾大学理工学部物理情報工学科(情報工学科じゃない科)
• 同理工学研究科修士
• 同理工学研究科博士課程←now!
• MATLABで医療系の画像処理してます
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 3. 自己紹介(2)
• 30min. のアルバイトプログラマー( 09.10∼)
• 携帯版,Android版,スマホブラウザ版
• Railsでの受託開発(1件目)
• Androidゲーム開発(1件目)
• 色間違い https://play.google.com/store/apps/details?id=net.tokyoster
• 最近mbed(マイコンボード)買った
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 4. 要するに
• 人生迷ってる興味範囲の広いプログラマー
• LangTurn: 優秀なプログラマを見分ける方法
http://langturn.com/translations/58?locale=ja
• 彼らはそれら技術の全てに精通してないかもしれないが、全てのまともなプロ
グラマは関連のない技術の大きなリストを使いこなしていくだろう
• っていうのを信じたい
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 5. そもそも
• 一週間前に急にDMが Σ
• しかも勉強会というのが初参加
• テーマを決めなくちゃ
• 何なら話がかぶらない?役に立ちそう?
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 6. テーマ?
• 受託で請求書の発行機能をつけることに
• PDFに出力したほうがいいんじゃない?
• 印刷○,ファイル保存○,メール送付○
• 請求書をRailsからPDFで出力させよう!
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 7. 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}
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 8. Rails + TeX? = PDF
• ・・・でも普通の人ってTeX使わないよね
• そもそもインストールが大変だし
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 9. 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
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 10. Rails + ? = PDF
• 結論:今ならWickedPDF が良いらしい
• Githubをみたところ最近も更新されてる様子
• mileszs/wicked_pdf · GitHub https://github.com/mileszs/wicked_pdf
• そして日本語の記事がほぼない(新規性○)
• Rails3系でPDFを出力したい人に役に立つb
• ・・・かも?(そもそもいるのか?)
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 11. 本日のテーマ
まどマギ ジェネレーター - まどかマギカ風画像を自動生成 http://magi.md/
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 12. 開発環境
• Mac Lion(10.7.4)
• RVM 1.8.5
• Ruby 1.9.2
• Rails 3.2.3
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 13. 何はともあれ骨組み作り
rvm gemset create pdf_bills
gem install rails
rails new pdf_bills
rails g scaffold orders
item_name:string item_price:integer
item_num:integer
rake db:migrate
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 14. WickedPDFのGem追加
• Gemfile
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
• bundle install
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 15. 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
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 16. 結果(1)
• 開いてみる(localhost:3000/orders)
rails s
• 適当に登録
•
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 17. 結果(1)
• localhost:3000/orders.pdf
• 文字化けした...
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 18. わけがわからないよ
• 多分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" />
• が,必要らしい.
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 19. 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" />
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 20. 結果(2)
• ちゃんと表示された!
•
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 21. もっと請求書らしく
• 総額表示とかつけたり
• app/controllers/order_controller.rb
@total_price=@orders.sum{|o|o.item_num*o.item_price}
• app/views/orders/index_pdf.erb
<%= h @total_price %>
• CSSも作成
• app/assets/stylesheets/bill.css
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 22. 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" %>
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 23. 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>
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 24. 結果(3)
• かなり請求書らしい感じにできた!
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 25. まとめ
• PDFで出力させるのって簡単!
• gem 'wicked_pdf'
• gem 'wkhtmltopdf-binary'
• render :pdf
• <meta http-equiv="content-type"
content="text/html; charset=utf-8" />
• (TeXと連携するとか言わなくて良かった)
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日
- 26. 参考資料
• 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/
Render :pdf Rails3系対応WickedPDFで簡単PDF出力 2012/05/29 【第2回】Railsだったり勉強会
12年5月29日火曜日