我正在尝试为我的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
?
谢谢大家!
答案 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文件的同一目录和相同名称中