我希望能够将PDF文件转换为图像,每个PDF页面成为一个单独的图像。
“将.doc或.pdf转换为图像并在Ruby中显示缩略图?”是一篇类似的文章,但它没有涵盖如何为每个页面制作单独的图像。
“将.doc或.pdf转换为图像并在Ruby中显示缩略图?”是一篇类似的文章,但它没有涵盖如何为每个页面制作单独的图像。
使用RMagick本身,您可以为不同的页面创建图像:
require 'RMagick'
pdf_file_name = "test.pdf"
im = Magick::Image.read(pdf_file_name)
以上代码将为您提供一个数组arr []
,其中每个页面都有一个条目。如果您想生成第五页的JPEG图像,请执行以下操作:
im[4].write(pdf_file_name + ".jpg")
但是这样会加载整个PDF,可能会很慢。
另一个选择是,如果你想创建第五页的图像,并且不想加载完整的PDF文件:
require 'RMagick'
pdf_file_name = "test.pdf[5]"
im = Magick::Image.read(pdf_file_name)
im[0].write(pdf_file_name + ".jpg")
ImageMagick可以处理PDF文件。 RMagick也可能可以,但我不太熟悉它。
您链接的帖子中的代码:
require 'RMagick'
pdf = Magick::ImageList.new("doc.pdf")
pdf
是一个 ImageList
对象,根据文档的说明,它将许多方法委托给 Array
。你可以遍历 pdf
并调用 write
将单个图像写入文件。
burst
命令将PDF拆分为单个页面,然后再在RMagick中处理每个页面。这可能不如一体化解决方案高效,但不幸的是没有一体化解决方案可以出现。
还有一个名为PDF::Toolkit的Ruby工具包,它连接到pdftk,但我从未使用过。