Carrierwave:将多页PDF拆分为多个图像

时间:2013-04-25 09:15:00

标签: ruby-on-rails pdf carrierwave

我正在尝试为我的Rails应用程序拆分多页PDF,然后将页面转换为png。在最好的情况下,我最终会在我的图像模型中每页输入一个条目。

这是我到目前为止所得到的:

def generate_png
  manipulate! do |image, index|
    image.format = 'png'
    image.write("#{Rails.root}/public/#{store_dir}/image-#{index}.png")
  end
end

不幸的是,它只给了我第一帧的image-0.png而其他帧没有。我哪里错了?

如何在每个帧的图像模型中生成新条目?像

这样的东西
model.images.new :image => image

谢谢大家!

1 个答案:

答案 0 :(得分:1)

当你将pdf文件分割成图像时,如果文件名是file.pdf,结果将是具有相同名称的多个图像,附加的数字如file-0.png,file-1.png ..... .. 所以你需要从pdf加载所有转换后的图像,并以你想要的任何格式转换它们

它给你image-0.png,因为拆分pdf文件的返回只是第一个图像,它是pdf文件中的第一页

您可以正常上传文件并执行after_create方法

def generate_image_form_pdf 
  file = @magazine.file
  file_name=file.path.sub(".pdf",".jpg")
  system("convert #{file.path}  #{file_name}")
end

上述方法将从pdf文件创建jpg图像并将它们存储在原始pdf文件的同一目录和相同名称中