我正在使用wicked_pdf
gem 生成发票的 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:in system:从 /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:in main
我的 gemfile 中也有这个:
gem 'wkhtmltopdf-binary'
gem "wicked_pdf", "~> 0.9.6"