The most popular way to do it is with the Grover gem. Grover is a wrapper around Playwright that makes it easy to generate images from HTML.
Install Playwright and Playwright client for Ruby
npm install email@example.com gem install playwright-ruby-client
Get the base64 encoded image of some HTML
require 'playwright' Playwright.create(playwright_cli_executable_path: './node_modules/.bin/playwright') do |playwright| playwright.chromium.launch(headless: false) do |browser| page = browser.new_page page.set_content('<html><body><h1>Hello World</h1></body></html>') @image = Base64.strict_encode64(page.screenshot()) end end puts @image
We created Urlbox to make converting HTML to images easy
Learn more about our website screenshot API.