首页 > 解决方案 > 在 Ruby on Rails 中将 PDF/DOC/DOCx 转换为图像

问题描述

第 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 的任何一页。卡在这里。请帮忙。

随意回答问题的任何部分。!!

标签: ruby-on-railsimagepdfimagemagickminimagick

解决方案


您可以使用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

推荐阅读