宝石を使用しwicked_pdf
て、ロゴ画像のある請求書の PDF を生成しています。Rails ヘルパーを使用する場合:
<%= image_tag('logo.svg'), alt: "alternate_text") %>
ロゴはブラウザに表示されますが、ダウンロードしようとすると表示されません。
画像パスは絶対 URL である必要があることがわかりました。そこで、外部 URL http://path_to_external_url.com/assets/logo.svg
(既存の Rails アプリケーション) からロゴを埋め込みました。これは機能し、ダウンロードした PDF に表示されます。
さらに、Rails アプリでヘルパーを作成して、プロジェクトのルート URL を次のように見つけました。
def asset_url(asset)
"#{request.protocol}#{request.host_with_port}#{asset_path(asset)}"
end
次に、ヘルパーメソッドと呼ばれる私の見解では:
<%= image_tag(asset_url('logo.svg'), alt: "Meetupcall") %>
これですべて正常に動作し、ブラウザで画像を見ることができますが、ボタンをクリックしてダウンロードするとハングします。ハードコードされた URL で機能する理由がわかりませんが、組み込みのimage_tag
ヘルパーを使用する場合はそうではありません。
OS X Mountain Lion 10.8.4 と wkhtmltopdf 0.8.3 を使用しています。
これは、ログ ファイル内のエラーのコピーです。
RuntimeError - 実行に失敗しました: "/Users/Azz/.gem/ruby/2.0.0/bin/wkhtmltopdf" -q "file:////var/folders/ms/b15k263952g5_14lnsgn9gq80000gn/T/wicked_pdf20130715-670-103zzi7. html" "/var/folders/ms/b15k263952g5_14lnsgn9gq80000gn/T/wicked_pdf_generated_file20130715-670-5xs1jt.pdf" エラー: PDF を生成できませんでした! コマンド エラー: /Users/Azz/.gem/ruby/2.0.0/gems/wkhtmltopdf-binary-0.9.9.1/bin/wkhtmltopdf:14: システム内: /Users/Azz/.gem/ruby/2.0 からの割り込み。 0/gems/wkhtmltopdf-binary-0.9.9.1/bin/wkhtmltopdf:14:in from /Users/Azz/.gem/ruby/2.0.0/bin/wkhtmltopdf:23:in load from /Users/Azz/.gem /ruby/2.0.0/bin/wkhtmltopdf:23:メインで
私はgemfileにもこれを持っています:
gem 'wkhtmltopdf-binary'
gem "wicked_pdf", "~> 0.9.6"