Преобразовать .doc или .pdf в изображение и отобразить миниатюру в Ruby? - PullRequest
11 голосов
/ 15 сентября 2008

Конвертировать .doc или .pdf в изображение и отобразить миниатюру в Ruby?
Кто-нибудь знает, как генерировать миниатюры документов в Ruby (или C, python ...)

Ответы [ 6 ]

21 голосов
/ 16 сентября 2008

Простой пример RMagick для преобразования PDF в PNG:

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.

4 голосов
/ 17 июня 2014

Пример кода для ответа на комментарий @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

0 голосов
/ 22 мая 2015

Если вы не против заплатить за Imgix, он также обрабатывает PDF-файлы . Вы получаете все преимущества быстрого CDN с ним.

0 голосов
/ 16 сентября 2008

Как говорили 2 предыдущих автора, ImageMagick, вероятно, самый простой способ создания миниатюр.

Вы можете выполнить что-то вроде:

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

(Обратные кавычки говорят Ruby о его раскладывании).

Если вы не хотите использовать exec для выполнения преобразования, вы можете использовать гем RMagick, чтобы сделать это за вас, но, вероятно, это немного больше кода.

0 голосов
/ 15 сентября 2008

Поддержка PDF немного ошибочна в ImageMagick, но на сегодняшний день это лучший способ ОС для ruby. Есть также проект Google Summer of Code для поддержки чистого Ruby PDF.

Я читал материал об использовании OpenOffice без графического интерфейса для преобразования файлов .doc, но в лучшем случае это будет сложно.

0 голосов
/ 15 сентября 2008

Не уверен насчет поддержки .doc в любой библиотеке с открытым исходным кодом, но ImageMagick (и гем RMagick) можно скомпилировать с поддержкой pdf (я думаю, что он включен по умолчанию)

...