1

我正在尝试生成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
4

2 回答 2

4

看看 ruby​​ 的 imagemagick 和 rmagick 插件。这允许您进行各种图像转换,包括 PDF 到 jpeg。

http://rmagick.rubyforge.org/

编辑:

未经测试的示例代码:

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

查看此页面上文档的末尾,其中显示了一个类似的示例,其中将多帧 gif 转换为多个 PNG

于 2013-08-24T10:50:43.690 回答
2

如果您的目标是制作图像,我认为您可以完全跳过 pdf 的内容,那么先将其转换为 pdf 然后再转换为图像是没有意义的。看看IMGKit,它允许从 html 字符串生成图像。

于 2013-08-22T14:19:47.787 回答