рельсы конвертировать HTML в изображение - PullRequest
13 голосов
/ 30 декабря 2010

Я ищу способ конвертировать HTML-теги в изображение на лету ...

Это означает, что я хочу иметь возможность сделать image_tag с путем к методу, который возвращаетизображение, созданное в формате html.

Я искал решение по этому вопросу, но не смог придумать правильный способ решить эту проблему ...

Есть идеи?

Маечи

Ответы [ 3 ]

26 голосов
/ 28 ноября 2011

IMGkit может выполнить эту работу ( подробности о github )

Создание JPG с использованием старого HTML + CSS

kit = IMGKit.new('http://google.com')
kit.to_jpg
kit.to_jpeg 
kit.to_png
kit.to_tif
kit.to_tiff

или в вашем контроллере

@kit = IMGKit.new(render_as_string)

format.jpg do
  send_data(@kit.to_jpg, :type => "image/jpeg", :disposition => 'inline')
end
1 голос
/ 14 января 2014

IMGKIT требует css с абсолютным URL для любого фонового изображения или других активов.Таким образом, вы можете сгенерировать его динамически, следуя этой ссылке https://coderwall.com/p/exj0ig и с некоторыми шагами как

A) Поместите все изображения в папку assets / images приложения rails app

B) Установить гем 'sass-rails', если не установлен https://github.com/rails/sass-rails

C) создать другое имя файла css как css_file_name.css.sccs.erb

D) поместите в него все остальное содержимое файла css.

E) В файле css просто введите имя файла изображения, как показано ниже: background-image: image-url ('image.png');

F) Использовать ресурсную линию (http://guides.rubyonrails.org/asset_pipeline.html#how-to-use-the-asset-pipeline) Выполнить команду ниже в качестве режима приложения: (1) РазработкаРежим: RAILS_ENV = rake-ресурсы exec комплекта разработки: прекомпиляция (2) Режим производства: RAILS_ENV = rake-ресурсы рабочего комплекта: прекомпиляция

G) В вашей конфигурации / средах /

(1) В development.rb config.action_controller.asset_host = "ВАШ ЛОКАЛЬНЫЙ URL-адрес, например YOUR_LOCALHOST_ADDRESS"

(2) В production.rb config.action_controller.asset_host = "http://assets.example.com" / ВАШ АДРЕС /

H) И, наконец, свяжите свою таблицу стилей с IMGKIT, как показано ниже

html_content = "YOUR HTML CONTENT"
kit = IMGKit.new(html_content, height: 900, transparent:true, quality:10) /*YOUR SETTING*/
kit.stylesheets << "#{Rails.root}/public/assets/application.css"
file = kit.to_file(Rails.root + "public/pngs/" + "screenshot.png") /*YOUR IMAGE NAME*/
send_file("#{Rails.root}/public/pngs/screenshot.png", :filename => "screenshot.png", :type => "image/png",:disposition => 'attachment',:streaming=> 'true') /*YOUR ADDRESS WHERE U WANT TO STORE PNG FILE*/

I) Перезапустите сервер и наслаждайтесь !!!!!

[ ПРИМЕЧАНИЕ: После каждого изменения, пожалуйста, запустите команду assets pipline, чтобы получить последний файл application.css, которыйсделан из файла расширения .sccs.erb.]

1 голос
/ 31 декабря 2010

Я собираюсь сделать дикое предположение здесь и предположить, что вы хотите конвертировать HTML в изображение, поэтому сделайте «снимок» веб-страницы или чего-то еще. Я не уверен, как именно это сделать за один шаг, но один из способов сделать это - использовать PDFKit для преобразования в PDF, а затем использовать RMagick для преобразования в любой формат изображения, который вы хотите.

...