Как ответить в PNG или JPG в Rails и сгенерировать изображение из HTML?

Я ищу камень или решение для генерации изображения в ответ контроллера.

Было бы хорошо, если бы это можно было сделать в контроллере следующим образом:

respond_to :html, :png

def show
  ...
  respond_to do |format|
    format.html
    format.png { ??? }  # some html to png converter 
  end
end

Когда png запрашивается формат, обрабатывает ответ с шаблоном:

#show.png.haml
%h1
  Some title
%p
  Some content

Результатом должно быть изображение.

Я знаю о pdf Решения для генерации PDFKit, креветок и ищу генерацию изображений.

Кто-нибудь знает рабочее решение / пример? Любая отправная точка будет очень цениться.

1 ответ

Решение

Проверьте здесь: http://weblog.rubyonrails.org/2006/12/19/using-custom-mime-types

Mime::Type.register "image/png", :png

# then in your controller action
def show
  respond_to do |format|
    format.html { }
    format.png { }
  end
end

UPD

Как насчет генерации изображения. Если вам нужно конвертировать HTML-страницу в изображение. Ты можешь использовать wkhtmltoimage
http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltoimage-0.10.0_beta2-static-amd64.tar.bz2&can=4&q=

Там нет драгоценного камня, как pdfkit за wkhtmltopdf но это просто в использовании.

Также вы можете использовать pdfKIT gem и после этого конвертируем PDF в PNG с помощью imagemagick. Это тоже довольно легко.

UPD

Возможность использования SnapShot Я предпочитаю использовать IMGKit драгоценный камень

https://github.com/csquared/IMGKit

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