A Node.js library that generates images from HTML
🏠 Homepage
This module exposes a function that generates images (png, jpeg) from HTML. It uses puppeteer in headless mode to achieve it. Additionally, it embarks Handlebars to provide a way to add logic in your HTML.
npm install node-html-to-image
# or
yarn add node-html-to-image
const nodeHtmlToImage = require('node-html-to-image')
nodeHtmlToImage({
output: './image.png',
html: '<html><body>Hello world!</body></html>'
})
.then(() => console.log('The image was created successfully!'))
List of all available options:
option | description | type | required |
---|---|---|---|
ouput | The ouput path for generated image | string | required |
html | The html used to generate image content | string | required |
type | The type of the generated image | jpeg or png (default: png) | optional |
content | If provided html property is considered an handlebars template and use content value to fill it | object | optional |
waitUntil | Define when to consider markup succeded. Learn more. | string or Array | optional |
puppeteerArgs | The puppeteerArgs property let you pass down custom configuration to puppeteer. Learn more. | object | optional |
node-html-to-image
takes a screenshot of the body tag's content. If you want to set output image's resolution you need to set its dimension using CSS like in the following example.
const nodeHtmlToImage = require('node-html-to-image')
nodeHtmlToImage({
output: './image.png',
html: `<html>
<head>
<style>
body {
width: 2480px;
height: 3508px;
}
<style>
</style>
</head>
<body>Hello world!</body>
</html>
`
})
.then(() => console.log('The image was created successfully!'))
Handlerbars is a templating language. It generates HTML from a template and an input object. In the following example we provide a template to node-html-to-image
and a content object to fill the template.
const nodeHtmlToImage = require('node-html-to-image')
nodeHtmlToImage({
output: './image.png',
html: '<html><body>Hello {{name}}!</body></html>',
content: { name: 'you' }
})
.then(() => console.log('The image was created successfully!'))
Handlebars provides a lot of expressions to handle common use cases like conditions or loops.
- node-html-to-image-cli - CLI for this module
You need to install tesseract on your computer before launching tests. Here is the procedure for Mac users:
brew install tesseract
brew install tesseract-lang
Launch test:
yarn test
👤 FRIN Yvonnick frin.yvonnick@gmail.com
- Website: https://yvonnickfrin.dev
- Twitter: @yvonnickfrin
- Github: @frinyvonnick
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
Copyright © 2019 FRIN Yvonnick frin.yvonnick@gmail.com.
This project is Apache--2.0 licensed.
This README was generated with ❤️ by readme-md-generator