SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Render :pdf
              Rails3系対応WickedPDFで
                    簡単PDF出力
                                  PDF
               2012/05/29 【第2回】Railsだったり勉強会
                        土岐佳輝 @tokyoster




12年5月29日火曜日
自己紹介(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日火曜日
自己紹介(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日火曜日
要するに
      • 人生迷ってる興味範囲の広いプログラマー
      • LangTurn: 優秀なプログラマを見分ける方法
              http://langturn.com/translations/58?locale=ja

      •        彼らはそれら技術の全てに精通してないかもしれないが、全てのまともなプロ
              グラマは関連のない技術の大きなリストを使いこなしていくだろう

      •       っていうのを信じたい



   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
そもそも

      • 一週間前に急にDMが Σ
      • しかも勉強会というのが初参加
      • テーマを決めなくちゃ
      • 何なら話がかぶらない?役に立ちそう?
   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
テーマ?

      • 受託で請求書の発行機能をつけることに
      • PDFに出力したほうがいいんじゃない?
       • 印刷○,ファイル保存○,メール送付○
      • 請求書をRailsからPDFで出力させよう!
   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
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日火曜日
Rails + TeX? = PDF


     • ・・・でも普通の人ってTeX使わないよね
              •   そもそもインストールが大変だし




   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
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日火曜日
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日火曜日
本日のテーマ




                                       まどマギ ジェネレーター - まどかマギカ風画像を自動生成 http://magi.md/




   Render :pdf Rails3系対応WickedPDFで簡単PDF出力           2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
開発環境



      • 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日火曜日
何はともあれ骨組み作り

         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日火曜日
WickedPDFのGem追加

      • Gemfile
          gem 'wicked_pdf'
          gem 'wkhtmltopdf-binary'



      • bundle       install


   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
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日火曜日
結果(1)
      • 開いてみる(localhost:3000/orders)
          rails s


          • 適当に登録

          •
   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
結果(1)
              • localhost:3000/orders.pdf




               • 文字化けした...
   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
わけがわからないよ
      • 多分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日火曜日
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日火曜日
結果(2)
      • ちゃんと表示された!




      •
   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
もっと請求書らしく
    • 総額表示とかつけたり
      • 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日火曜日
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日火曜日
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商事(&#9685;&#8255;&#8255;&#9685;)</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日火曜日
結果(3)
              • かなり請求書らしい感じにできた!




   Render :pdf Rails3系対応WickedPDFで簡単PDF出力   2012/05/29 【第2回】Railsだったり勉強会

12年5月29日火曜日
まとめ
      • 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日火曜日
参考資料
      •       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日火曜日
ご清聴ありがとうございました!




12年5月29日火曜日

Weitere ähnliche Inhalte

Andere mochten auch

Herokuで作るdevise認証サイト
Herokuで作るdevise認証サイトHerokuで作るdevise認証サイト
Herokuで作るdevise認証サイトFukui Osamu
 
Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門cocopon
 
ARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマーARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマーSatoshi Asano
 
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknightsUnityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknightsKouji Hosoda
 
Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Katsutoshi Makino
 
Extending the Unity Editor Extended
Extending the Unity Editor ExtendedExtending the Unity Editor Extended
Extending the Unity Editor ExtendedMasamitsu Ishikawa
 
最後の楽園の開発をちょこっとだけ手伝った話
最後の楽園の開発をちょこっとだけ手伝った話最後の楽園の開発をちょこっとだけ手伝った話
最後の楽園の開発をちょこっとだけ手伝った話nullnilaki
 
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Tomoaki Shimizu
 
いまさら聞けないUnity小技
いまさら聞けないUnity小技いまさら聞けないUnity小技
いまさら聞けないUnity小技Yuichi Ishii
 
Cocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみようCocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみようTomoaki Shimizu
 
Unity5.3の機能まとめ
Unity5.3の機能まとめUnity5.3の機能まとめ
Unity5.3の機能まとめKeigo Ando
 
ゲーム開発とデザインパターン
ゲーム開発とデザインパターンゲーム開発とデザインパターン
ゲーム開発とデザインパターンTakashi Komada
 
SMP Implementation for OpenBSD/sgi [Japanese Edition]
SMP Implementation for OpenBSD/sgi [Japanese Edition]SMP Implementation for OpenBSD/sgi [Japanese Edition]
SMP Implementation for OpenBSD/sgi [Japanese Edition]Takuya ASADA
 
OpenBSD/sgi SMP implementation for Origin 350
OpenBSD/sgi SMP implementation for Origin 350OpenBSD/sgi SMP implementation for Origin 350
OpenBSD/sgi SMP implementation for Origin 350Takuya ASADA
 

Andere mochten auch (19)

Herokuで作るdevise認証サイト
Herokuで作るdevise認証サイトHerokuで作るdevise認証サイト
Herokuで作るdevise認証サイト
 
Sencha study
Sencha studySencha study
Sencha study
 
Air printで遊んでみた
Air printで遊んでみたAir printで遊んでみた
Air printで遊んでみた
 
Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門Core Graphicsでつくる自作UIコンポーネント入門
Core Graphicsでつくる自作UIコンポーネント入門
 
mq 使ってみたよ
mq 使ってみたよmq 使ってみたよ
mq 使ってみたよ
 
ARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマーARCでめちゃモテiOSプログラマー
ARCでめちゃモテiOSプログラマー
 
vImageのススメ
vImageのススメvImageのススメ
vImageのススメ
 
Unityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknightsUnityのasset bundle運用実例@lordofknights
Unityのasset bundle運用実例@lordofknights
 
Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化Shadow gunのサンプルから学べるモバイル最適化
Shadow gunのサンプルから学べるモバイル最適化
 
Extending the Unity Editor Extended
Extending the Unity Editor ExtendedExtending the Unity Editor Extended
Extending the Unity Editor Extended
 
最後の楽園の開発をちょこっとだけ手伝った話
最後の楽園の開発をちょこっとだけ手伝った話最後の楽園の開発をちょこっとだけ手伝った話
最後の楽園の開発をちょこっとだけ手伝った話
 
Codevs5.0勉強会
Codevs5.0勉強会Codevs5.0勉強会
Codevs5.0勉強会
 
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
 
いまさら聞けないUnity小技
いまさら聞けないUnity小技いまさら聞けないUnity小技
いまさら聞けないUnity小技
 
Cocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみようCocos2d-xで画像周りを自由自在に表示してみよう
Cocos2d-xで画像周りを自由自在に表示してみよう
 
Unity5.3の機能まとめ
Unity5.3の機能まとめUnity5.3の機能まとめ
Unity5.3の機能まとめ
 
ゲーム開発とデザインパターン
ゲーム開発とデザインパターンゲーム開発とデザインパターン
ゲーム開発とデザインパターン
 
SMP Implementation for OpenBSD/sgi [Japanese Edition]
SMP Implementation for OpenBSD/sgi [Japanese Edition]SMP Implementation for OpenBSD/sgi [Japanese Edition]
SMP Implementation for OpenBSD/sgi [Japanese Edition]
 
OpenBSD/sgi SMP implementation for Origin 350
OpenBSD/sgi SMP implementation for Origin 350OpenBSD/sgi SMP implementation for Origin 350
OpenBSD/sgi SMP implementation for Origin 350
 

Ähnlich wie 120529 railsとか勉強会v2

CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる智之 大野
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysKenta Suzuki
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysVOYAGE GROUP
 
ReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換についてReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換についてmasayoshi takahashi
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話nekogeruge_987
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動Akira Tanaka
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Developmentaktsk
 
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationOSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationRyuichi Ueda
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03Akimitsu Takagi
 
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlChiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlHideaki Ohno
 
WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN kamiyam .
 
究極にして至高のWAF
究極にして至高のWAF究極にして至高のWAF
究極にして至高のWAFYuki Ishikawa
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsNaoki Sega
 
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜Fumiyasu Sumiya
 
20140930 anything as_code
20140930 anything as_code20140930 anything as_code
20140930 anything as_codeSugawara Genki
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶHiroshi Oyamada
 
Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日Ryuichi Ueda
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画Kazufumi Ohkawa
 

Ähnlich wie 120529 railsとか勉強会v2 (20)

CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
Aiming study#6pdf
Aiming study#6pdfAiming study#6pdf
Aiming study#6pdf
 
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPANSAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
SAIS/SIGMOD参加報告 in SAIS/DWS2018報告会@Yahoo! JAPAN
 
ReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換についてReVIEWを用いたPDFとEPUBへの変換について
ReVIEWを用いたPDFとEPUBへの変換について
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 
MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動MBSD ツールチェーンと今後の活動
MBSD ツールチェーンと今後の活動
 
Hyper → Highspeed → Development
Hyper → Highspeed → DevelopmentHyper → Highspeed → Development
Hyper → Highspeed → Development
 
OSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentationOSC2012 Tokyo Spring, USP lab. presentation
OSC2012 Tokyo Spring, USP lab. presentation
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
 
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlChiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for Perl
 
WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN WEBアプリケーションビルド・ テストツール YEOMAN
WEBアプリケーションビルド・ テストツール YEOMAN
 
究極にして至高のWAF
究極にして至高のWAF究極にして至高のWAF
究極にして至高のWAF
 
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用TipsCasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
 
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜
 
20140930 anything as_code
20140930 anything as_code20140930 anything as_code
20140930 anything as_code
 
Sinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶSinatraでwebアプリケーション開発を学ぶ
Sinatraでwebアプリケーション開発を学ぶ
 
Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日
 
pythonでオフィス快適化計画
pythonでオフィス快適化計画pythonでオフィス快適化計画
pythonでオフィス快適化計画
 

Kürzlich hochgeladen

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Kürzlich hochgeladen (10)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

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商事(&#9685;&#8255;&#8255;&#9685;)</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日火曜日