我正在尝试制作pdf并将其作为文件发送,或者更好,使用imagemagick和wicked_pdf将其渲染为浏览器中的图像。
我能够发送一些内容,但操作系统无法将其识别为图像。 pdf字符串生成正确,所以我认为问题出在图像部分
这是我的控制器的代码:
format.jpg do
@format = :pdf
pdfstr = render_to_string 'generated_graphics/tag.erb', :pdf => "tag", :layout => nil, :page_height => '38mm', :page_width => '129mm'
file = Tempfile.new('foo')
file.write pdfstr
file.close
require 'RMagick'
pdf = Magick::ImageList.new(file.path)
send_data pdf.write("myimage.jpg"), :type => 'image/jpg'
end
答案 0 :(得分:4)
看一下ruby的imagemagick和rmagick插件。这使您可以进行各种图像转换,包括PDF到jpeg。
编辑:
未经测试的示例代码:
require 'RMagick'
pdf = Magick::ImageList.new("doc.pdf")
pdf.write("myimage.jpg")
如果doc.pdf有3个页面,则应输出3个图像:myimage.jpg.0 myimage.jpg.1 myimage.jpg.2
查看文档on this page的结尾,其中显示了该文档 一个类似的例子,多帧gif转换为多个PNG
答案 1 :(得分:1)
如果你的目标是拥有一张图片我认为你可以跳过所有的pdf内容,那么就没有把它首先转换为pdf然后转换为图像的感觉。 看看IMGKit,它允许从html字符串生成图像。