使用Imagemagick + RMagic将pdf转换为图像

时间:2011-06-09 00:57:43

标签: ruby-on-rails imagemagick rmagick

我现在正在使用paperclip将pdf文件转换为图像。

我的代码看起来像这样

  def convert_keynote_to_slides
    system('convert -size 640x300 ' +  keynote.queued_for_write[:original].path + ' ' + KEYNOTE_PATH + '/' + File.basename( self.keynote_file_name )+"%02d.png")

    slide_basename = File.basename( self.keynote_file_name )

    files = Dir.entries(KEYNOTE_PATH).sort
    for file in files
      #puts file if file.include?(slide_basename +'-')
      self.slides.build("slide" => "#{file}") if file.include?(slide_basename)
    end

  end

我确信这可以重新考虑,以便更好地工作。

我的问题是:

有没有办法弄清楚ImageMagick的进展,如果不是我怎么会把它放到延迟的工作,因为我担心这不会很好地扩展。

任何人都可以指出我如何使这些代码更好/更有效。 KEYNOTE_PATH指向公共目录,其中所有图像都保存在一个文件夹中,我不知道我是否喜欢这样。可能更好的是为每个文件分配一个随机名称。

1 个答案:

答案 0 :(得分:0)

我希望您对keynote.queued_for_write[:original].pathFile.basename( self.keynote_file_name )输入变量进行大量过滤,因此您不会受到shell meta-character injection attacks的影响。