Преобразовать .doc или .pdf в изображение и отобразить миниатюру в Ruby?

StackOverflow https://stackoverflow.com/questions/65250

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Простой пример 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.Вы также можете попробовать воспользоваться услугами онлайн-конвертации, в том числе http://Zamzar.com.

Другие советы

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

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

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

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

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

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

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

(Обратные кавычки говорят Руби, что нужно раскошелиться).

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top