Rails конвертировать html в изображение
Я ищу способ конвертировать html-теги в изображение на лету...
Это означает, что я хочу иметь возможность сделать image_tag с пути к методу, который возвращает созданный образ html.
Я искал решение, но не смог найти подходящий способ решить эту проблему.
Любые идеи?
Maechi
Ответы
Ответ 1
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
Ответ 2
Я собираюсь взять здесь дикое предположение и предположить, что вы хотите преобразовать HTML в изображение, поэтому сделайте "моментальный снимок" веб-страницы или что-то в этом роде. Я не уверен, как это сделать за один шаг, но один из способов сделать это - использовать PDFKit для преобразования в PDF и затем используйте RMagick для преобразования в любой формат изображения, который вы хотите.
Ответ 3
IMGKIT reqiured css с абсолютным URL-адресом для любого фонового изображения или других активов.
Таким образом, вы можете генерировать его динамически после этой ссылки https://coderwall.com/p/exj0ig и некоторые шаги как
A) Поместите все изображения в папку ресурсов/изображений приложения rails
B) Установите gem '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) Использовать активы pipline (http://guides.rubyonrails.org/asset_pipeline.html#how-to-use-the-asset-pipeline)
Выполните команду ниже в качестве режима вашего приложения:
(1) Режим разработки: RAILS_ENV = пакет развертывания exec rake assets: precompile
(2) Режим производства: RAILS_ENV = производственный пакет exec rake assets: precompile
G) В вашей конфигурации/средах/
(1) В development.rb
config.action_controller.asset_host = "ВАШ МЕЖДУНАРОДНЫЙ ХОЗЯЙСТВЕННЫЙ URL i.e 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.]