wickedpdf无法在本地和亚马逊aws中渲染图像?

时间:2016-12-24 14:27:21

标签: ruby-on-rails image amazon-web-services wicked-pdf

我正在使用wickedpdf gem从pdf代码生成invoice html

宝石:

gem 'wicked_pdf'
gem "wkhtmltopdf-binary"

Gemfile.lock的

wicked_pdf (1.0.6)
wkhtmltopdf-binary (0.9.9.3)
控制器中的

  def show_pdf_invoice
    respond_to do |format|
      format.html { render :layout => "pdf.pdf.erb" }
      format.pdf do
    render pdf: "show_pdf_invoice", :layout => 'pdf.pdf.erb'
    #render :pdf => "pdf"#, :layout => 'pdf.html.erb'
      end
    end
  end
views/invoices/show_pdf_invoice.pdf.erb

中的

  <img id="image" src="https://www.google.co.in/logos/doodles/2016/holidays-2016-day-2-6356741311692800-scta.png" alt="logo" /> 
  <%= wicked_pdf_image_tag 'https://www.google.co.in/logos/doodles/2016/holidays-2016-day-2-6356741311692800-scta.png' %>

pdf正在生成。但图像没有显示。在图像的地方空盒子来了。无法找到问题。

3 个答案:

答案 0 :(得分:6)

我遇到了同样的问题,我通过删除/var/www/html https来解决问题。你试过这个吗?对于Amazon S3部分:您可以使用http作为:gsub

答案 1 :(得分:3)

将Rails 5.2与Active Storage结合使用与Amazon S3存储一起使用,我遇到了同样的问题。 在我的本地计算机上进行开发时,图像完美呈现,但是在Heroku上 它们显示为小的空白矩形。

要从上载到Active Storage的徽标中获取URL,我使用了@my_object.logo.service_url。 其中将标准网址与https一起使用。如前所述,将其替换为http解决了该问题。

我的pdf生成器视图中使用的完整代码:

<%= wicked_pdf_image_tag @my_object.logo.service_url.gsub("https", "http") %>

答案 2 :(得分:0)

两个选项

1。升级到wkhtmltopdf 0.12.5

-或-

2。将libssl1.0-devapt-get install libssl1.0-dev一起安装。

有关更多信息,请参见此问题:https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3001