在Ruby on Rails中将PDF / DOC / DOCx转换为图像

时间:2020-08-20 08:27:55

标签: ruby-on-rails image pdf imagemagick minimagick

第1部分:我的S3中存储有PDF,Docs,Docx。当我下载它们时,我希望它们首先转换为图像(png或jpg),然后仅下载(作为图像或图像的缩略图)。 如何实现呢?

第2部分:我已经使用 mini-magick 将pdf转换为图像,并且其工作方式如下:

require "mini_magick"

im=MiniMagick::Image.open("path/to_my_pdf.pdf")
im.format("png", 0)
im.write("some_thumbnail.png")

这里的问题是pdf可以有多个页面,我需要将每一页都转换为图像格式(可能是图像数组),但我无法实现。我只能转换pdf页面的任何一个。卡在这里。请帮助。

根据需要回答问题的任何部分。 !!

1 个答案:

答案 0 :(得分:2)

您可以使用RMagick gem来做到这一点,

require 'RMagick'

pdf = Magick::ImageList.new("path/to_my_pdf.pdf")

pdf.each_with_index do |page, i|
  page.write "#{i}_thumbnail.png"
end