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
7条答案
按热度按时间r8uurelv1#
将PDF转换为PNG的一个简单的RMagick示例是:
要转换MS Word文档,它不会那么容易。您最好的选择可能是在生成缩略图之前先将其转换为PDF。生成PDF的选项在很大程度上取决于您运行的操作系统。一个可能是使用OpenOffice和Python Open Document Converter。你也可以尝试在线转换服务,包括http://Zamzar.com。
0pizxfdo2#
回答@aisensiy上面评论的示例代码:
根据路径线索回答另一个问题:
https://stackoverflow.com/a/6369524/765063
dced5bon3#
不确定任何开源库是否支持.doc,但ImageMagick(和RMagick gem)可以编译为pdf支持(我认为默认情况下是打开的)
bnlyeluc4#
PDF支持在ImageMagick中有一点缺陷-但它是目前为止Ruby的最佳操作系统方式。还有一个google Summer of Code项目用于纯Ruby PDF支持。
我读过一些关于在没有GUI的情况下使用OpenOffice来转换.doc文件的文章-但这充其量是复杂的。
ibrsph3r5#
正如前两张海报所说,ImageMagick可能是生成缩略图最简单的方法。
你可以执行类似这样的命令:
(The反引号告诉Ruby把它壳掉)。
如果你不想使用exec来完成转换,你可以使用RMagick gem来完成,但它可能需要更多的代码。
yeotifhr6#
如果你不介意为Imgix付费,它也是handles PDFs。您可以从中获得快速CDN的所有好处。
xtupzzrd7#
LibreOffice帮助我将.doc、.docx或.rtf转换为图像。在您的服务器上安装LibreOffice:
在您的终端中测试它:
如你所见,这将首先将文件转换为PDF,然后到图像。您可能需要编辑ImageMagic策略:
还有另一个工具可以将PDF转换为图像-pdftoppm。