Puppeteer (Chrome headless node API) based web page renderer.
Useful server side rendering through proxy. Outputs HTML, PDF and screenshots as PNG.
Updated with HTML string-based rendering, in addition to the already provided URL-based rendering.
You can run Chromium or docker.
npm install
npm start
(service port: 3000)
docker run -d --name renderer -p 8080:3000 zenato/puppeteer-renderer
Input url http://localhost:{port}/?url=https://www.google.com
If you can see html code, server works fine.
If you have active service, set proxy configuration with middleware. See puppeteer-renderer-middleware for express.
const renderer = require('puppeteer-renderer-middleware');
const app = express();
app.use(renderer({
url: 'http://installed-your-puppeteer-renderer-url',
// userAgentPattern: /My-Custom-Agent/i,
// excludeUrlPattern: /*.html$/i
// timeout: 30 * 1000,
}));
// your service logics..
app.listen(8080);
Render based on a URL.
Name | Required | Value | Description | Usage |
---|---|---|---|---|
url |
yes | Target URL | http://puppeteer-renderer?url=http://www.google.com |
|
type |
pdf or screenshot |
Rendering another type. | http://puppeteer-renderer?url=http://www.google.com&type=pdf |
|
(Extra options) | Extra options (see puppeteer API doc) | http://puppeteer-renderer?url=http://www.google.com&type=pdf&scale=2 |
Render based on an HTML string.
Name | Required | Value | Description | Usage |
---|---|---|---|---|
type |
pdf or screenshot |
Rendering another type. | http://puppeteer-renderer?url=http://www.google.com&type=pdf |
|
(Extra options) | Extra options (see puppeteer API doc) | http://puppeteer-renderer?url=http://www.google.com&type=pdf&scale=2 |
Name | Required | Value | Description | Usage |
---|---|---|---|---|
html |
yes | HTML string. | ||
filename |
yes | Filename without extension |
Generated PDFs are returned with a Content-disposition
header requesting the browser to download the file instead of showing it.
The file name is generated from the URL rendered:
URL | Filename |
---|---|
https://www.example.com/ |
www.example.com.pdf |
https://www.example.com:80/ |
www.example.com.pdf |
https://www.example.com/resource |
resource.pdf |
https://www.example.com/resource.extension |
resource.pdf |
https://www.example.com/path/ |
path.pdf |
https://www.example.com/path/to/ |
pathto.pdf |
https://www.example.com/path/to/resource |
resource.pdf |
https://www.example.com/path/to/resource.ext |
resource.pdf |