wicked_pdf图像渲染

如何获得以pdf格式显示的产品图像?

我在视图文件中有这个代码

它显示了这辆车的所有图像。

但是如果我在show.pdf.erb中使用相同的代码,那么我只会得到问号而不是图像…就像图像丢失的东西。 那么,有没有办法让它们在纸上? 谢谢。

ps有什么控制台显示

 ***************WICKED*************** Asset Load (0.2ms) SELECT `assets`.* FROM `assets` WHERE (`assets`.car_id = 29) Carmodel Load (0.2ms) SELECT `carmodels`.* FROM `carmodels` WHERE `carmodels`.`id` = 28 LIMIT 1 Rendered cars/show.pdf.erb (255.2ms) "***************/usr/bin/wkhtmltopdf -q - - ***************" 

更新

 "margin:0px;padding:0px", :width=>"300", :height=>"240")%> 

这段代码显示了链接在html中应该是什么样子,用这段代码我可以渲染一张汽车的照片,但对于所有汽车来说都是一样的,所以我做的并不多。

163号码是分配给汽车的资产的ID,这里我保留一个图像的尺寸更大(拇指,中等,大……),我有一张汽车有5个不同数字的地图。 所以我有很多像这样的数字地图,因为我每辆车至少有5张照片。 每辆车有5个资产。 在show.html中我可以看到它们,但不是pdf。 我把它放在应用程序助手中:

 def pdf_image_tag(image, options = {}) options[:src] = File.expand_path(RAILS_ROOT) + '' + image tag(:img, options) end 

但这仅适用于您服务器上的图像,并且对于所有车辆都是相同的,我如何才能获得每张车的至少一张图像以pdf显示? Pleaseeeee。 救命!!!

版本0.7.9是

 <%= wicked_pdf_image_tag 'myfile.jpg' %> 

它基本上返回文件系统上的绝对路径:

 file:///path/to/image/myfile.jpg 

另请参阅: https : //github.com/mileszs/wicked_pdf

好的,所以我找到了答案

<%= image_tag(asset.asset.url(:medium)) %>代码生成的图像的url在html中看起来像2012_bmw_7_series_gearshift所以我的图像从系统图开始,我所要做的就是在application_helper.rb编写一个方法,如下所示:

 module ApplicationHelper def pdf_image_tag(image, options = {}) options[:src] = File.expand_path(RAILS_ROOT) + '/public' + image tag(:img, options) end end 

这样wiked_pdf就会知道名为pdf_image_tag的图像标签将从公共系统文件夹开始,而pdf.html.erb的最终代码将是:

 <% for asset in @car.assets %> <%= pdf_image_tag(asset.asset.url(:medium), :style=>"margin:0px;padding:0px", :width=>"250", :height=>"200")%> <% end %> 

这很简单,但还是花了几天时间弄清楚了。 美好的一天。

而不是使用wicked_pdf_image_tag帮助程序,可以使用image_tagimage_url rails帮助程序一起获取图像的绝对路径(这是wicked_pdf gem所需的):

 image_tag image_url('dir/image.png') 

这里dir/image.png是相对于rails app中标准位置的图像路径( app/assets/images for images)。