将.doc或.pdf转换为图像并在Ruby中显示缩略图?

时间:2008-09-15 18:08:11

标签: ruby pdf doc

将.doc或.pdf转换为图像并在Ruby中显示缩略图?
有谁知道如何在Ruby(或C,python ...)

中生成文档缩略图

6 个答案:

答案 0 :(得分:21)

将PDF转换为PNG的简单RMagick示例如下:

require 'RMagick'
pdf = Magick::ImageList.new("doc.pdf")
thumb = pdf.scale(300, 300)
thumb.write "doc.png"

要转换MS Word文档,它将不那么容易。您最好的选择可能是在生成缩略图之前先将其转换为PDF。生成PDF的选项在很大程度上取决于您运行的操作系统。一个可能是使用OpenOffice和Python Open Document Converter。您还可以尝试在线转化服务,包括http://Zamzar.com

答案 1 :(得分:4)

以上@aisensiy回答评论的示例代码:

require 'rmagick'
pdf_path = "/path/to/interesting/file.pdf"
page_index_path = pdf_path + "[0]" # first page in PDF
pdf_page = Magick::Image.read( page_index_path ).first # first item in Magick::ImageList
pdf_page.write( "/tmp/indexed-page.png" ) # implicit conversion based on file extension

根据回答另一个问题的路径线索:

https://stackoverflow.com/a/6369524/765063

答案 2 :(得分:0)

不确定任何开源库中的.doc支持,但ImageMagick(以及RMagick gem)可以使用pdf支持进行编译(我认为它默认开启)

答案 3 :(得分:0)

PDF支持在ImageMagick中有点小问题 - 但它是迄今为止最好的红宝石操作系统方式。还有一个用于纯Ruby PDF支持的谷歌夏季代码项目。

我已经阅读过使用OpenOffice而不使用GUI来转换.doc文件的内容 - 但它最多也会很复杂。

答案 4 :(得分:0)

正如之前的两张海报所说,ImageMagick可能是生成缩略图的最简单方法。

您可以执行以下操作:

´convert -size 300x300 doc.pdf doc.png´

(反引用告诉Ruby将其删除)。

如果您不想使用exec进行转换,可以使用RMagick gem为您执行此操作,但它可能需要更多代码。

答案 5 :(得分:0)

如果您不介意为Imgix支付费用,那么handles PDFs也是如此。用它来获得快速CDN的所有好处。