2012-02-28 25 views
2

wicked_pdfを使っていくつかのPDFをRailsで生成していますが、dev環境で正常に動作していますが、500エラーが発生します。ログ)を作成し、私の運用環境で生成しようとします。私が気づいた最初の事はwkhtmltopdfバイナリが私の生産ボックス上の別の場所にあったということでしたので、私は私のwicked_pdf.rb初期化子に以下を追加しました:ここWicked_pdfは開発中ではあるが、実際には開発中ではない

if Rails.env == "production" 
    WickedPdf.config = { 
     :exe_path => '/usr/bin/wkhtmltopdf' 
    } 
end 

は、私は私の中でそれを呼んでいる方法ですコントローラ:

def certificate 
    @inspection = Inspection.find(params[:id]) 
    @council = Council.find(@inspection.councilid) 
    respond_to do |format| 
     format.pdf do 
      render :pdf => @inspection.slug, 
        :show_as_html => params[:debug].present?, 
        :margin => {:top   => 0, 
           :bottom   => 0, 
           :left   => 0, 
           :right   => 0} 
     end 
    end 
    end 

そして、ここが私の見解の内容です:

# certificate.pdf.erb 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <style type="text/css"> 
     body { 
      margin: 0; 
      padding: 0; 
      font-family: "Lucida Grande", "Lucida Sans Unicode", Helvetica, Arial, sans-serif; 
     } 

     img#bg { 
      width: 800px; 
      height: 1130px; 
      position: absolute; 
     } 

     #date p, #council p { 
      line-height: 17px; 
      font-size: 12px; 
     } 

     #council { 
      position: absolute; 
      top: 650px; 
      left: 445px;   
     } 

     #logo { 
      position: absolute; 
      top: 965px; 
      left: 98px; 
     } 

     #logo img { 
      height: 65px; 
     } 

     #address { 
      position: absolute; 
      top: 425px; 
      left: 300px;   
     } 

     #address p { 
      font-size: 22px; 
      line-height: 27px; 
     } 

     #date { 
      position: absolute; 
      top: 650px; 
      left: 98px; 
     } 

    </style> 
    </head> 
    <body> 
     <%= wicked_pdf_image_tag "certificate#{@inspection.rating}.jpg", :id => "bg" %> 

     <div id="address"> 
     <p><%= @inspection.name %><br /> 
     <%= @inspection.address("<br />").html_safe %>  </p> 
     </div> 

     <div id="date"> 
     <p><%= @inspection.date.strftime("%B %d %Y") %></p> 
     </div> 

     <div id="council"> 
     <p><%= @council.address.html_safe %><br /><br /> 
     <strong>Tel: </strong><%= @council.tel %></p> 
     </div> 

     <div id="logo"> 
     <%= wicked_pdf_image_tag "certificates/#{@council.logo}.png" %> 
     </div> 

    </body> 
</html> 

私は、クエリ文字列にdebug=trueを追加すると、OK生成するようだ(とwicked_pdf_image_tagヘルパーが正しい場所を生成しているように見えますが、これはRails 3.1の中ではうっかりです。何か案は?私はRuby/Railsの新機能ですから、やさしくしてください!

答えて

7

これは、バンドラがwkthmltopdfへの依存関係を調達することを心配する場合には、はるかに簡単です。これをインストールすることで可能です:

gem "wkhtmltopdf-binary" 

そして次にバンドルインストールを実行します。その後、あなたはカスタムexe_path仕様を削除することができるはずです。正しく動作するはずです。それが動作しない場合は、私に知らせてください。

ジョー

+0

エクセレントを試してみてください、それは、おかげでそれを持っています! – Pezholio

+0

あなたが気にしないなら、ちょうどupvote!ありがとう! – TheDelChop

+0

probsはありません。完了! :) – Pezholio

0

静止画は、本番環境では表示されない場合は、

image_tag wicked_pdf_asset_base64('image.png') 
関連する問題