Преобразовать .doc или .pdf в изображение и отобразить эскиз в Ruby?

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

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
11
0
16 316
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Не уверен в поддержке .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, чтобы сделать это за вас, но это, вероятно, немного больше кода.

Ответ принят как подходящий

Простой пример 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.

Оно работает. Но это требует времени. Могу я просто прочитать первую страницу pdf и получить ее графическую версию?

aisensiy 17.08.2013 14:26

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

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

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