2013-09-25 106 views
1

我有一个问题,我正在使用rails 2.3.8 developing应用程序。我的问题是PDF。当一个生成的PDF显示在Linux中的所有图像(Ubuntu的)图像不显示在pdf

但相同的代码,当我在Windows7中尝试的PDF没有显示body.the页头和页脚图像加载。布局中的页眉和页脚。我正在使用wickedpdf生成pdf。 我的代码是

<%= wicked_pdf_image_tag "#{Rails.root}/public/images/master_student/profile/default_student.png" ,:width=>85,:height=>100 %> 

在Ubuntu工作正常,但在Windows7中无法正常工作的代码.. 请帮助

+0

是'wicked_pdf_image_tag“#{} Rails.root ...'在Ubuntu和Windows相同的输出在其他也就是说,不'Rails.root'产生相同的路径在这两种情况?如果不是,您可能正在运行到臭名昭著的相对VS绝对路径的问题。 –

+0

雅它生产用于Windows和Linux – user2814491

+0

只是一个想法相同的路径...删除'#{Rails.root}'并暂时硬编码资产的_absolute_路径,看看这是否有所作为。 –

回答

1

我只是克服了一个类似的问题在Windows上通过回形针上传的图片,因为WickedPDF的wicked_pdf_image_tag帮手需要图像公开/图像。

我曾经给here该问题的解决方案,但我仍然无法得到的图像在PDF渲染。然后我发现,如果将图像放入public/images文件夹并以此方式引用,则wicked_pdf_image_tag助手会在“file://”之后使用正斜杠而非反斜杠呈现图像标记。

这是辅助方法,我结束了,它取代wicked_pdf_image_tag:

module ApplicationHelper 
    def wicked_pdf_image_tag_for_public(img, options={}) 
    if img[0] == "/" 
     # Remove the leading slash 
     new_image = img.slice(1..-1) 
     image_tag "file:///#{Rails.root.join('public', new_image).to_s.gsub("/", "\\")}" 
    else 
     image_tag "file://#{Rails.root.join('public', 'images', img).to_s.gsub("/", "\\")}}", options 
    end 
    end 
end