https://github.com/tcort/wkhtmltox
high performance access to `wkhtmltopdf` and `wkhtmltoimage` from node.js.
https://github.com/tcort/wkhtmltox
jpg nodejs pdf png wkhtmltopdf
Last synced: 11 months ago
JSON representation
high performance access to `wkhtmltopdf` and `wkhtmltoimage` from node.js.
- Host: GitHub
- URL: https://github.com/tcort/wkhtmltox
- Owner: tcort
- Created: 2014-05-27T01:13:28.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2023-04-27T12:49:38.000Z (about 3 years ago)
- Last Synced: 2024-12-15T11:35:20.977Z (over 1 year ago)
- Topics: jpg, nodejs, pdf, png, wkhtmltopdf
- Language: JavaScript
- Homepage:
- Size: 138 KB
- Stars: 61
- Watchers: 8
- Forks: 7
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
wkhtmltox
=========
The goal of this module is to provide high performance access to `wkhtmltopdf` and `wkhtmltoimage` from node.js.
Those two tools are from [wkhtmltopdf](http://wkhtmltopdf.org/), a software package that
provides utilities for rendering HTML into various formats using the QT Webkit rendering engine.
This module is based on an [MIT](http://opensource.org/licenses/MIT) licensed module named [node-wkhtmltopdf](https://github.com/devongovett/node-wkhtmltopdf).
Requirements
------------
* [nodejs](http://nodejs.org/) v4 or later.
* [wkhtmltopdf/wkhtmltoimage](http://wkhtmltopdf.org/) v0.12 (with patched qt) or later.
Install
-------
The latest and greatest version of this software is available through [npm](http://npmjs.org/).
npm install wkhtmltox
Examples
--------
**HTML to PDF, JPG, PNG with custom path**
```js
// include the node module
var wkhtmltox = require("wkhtmltox");
// instantiate a new converter.
var converter = new wkhtmltox();
// Locations of the binaries can be specified, but this is
// only needed if the programs are located outside your PATH
converter.wkhtmltopdf = '/opt/local/bin/wkhtmltopdf';
converter.wkhtmltoimage = '/opt/local/bin/wkhtmltoimage';
// Convert to pdf.
// Function takes (inputStream, optionsObject), returns outputStream.
converter.pdf(fs.createReadStream('foo.html'), { pageSize: "letter" })
.pipe(fs.createWriteStream("foo.pdf"))
.on("finish", done);
// Convert to image.
// Function takes (inputStream, optionsObject), returns outputStream.
converter.image(fs.createReadStream('foo.html'), { format: "jpg" })
.pipe(fs.createWriteStream("foo.jpg"))
.on("finish", done);
converter.image(fs.createReadStream('foo.html'), { format: "png" })
.pipe(fs.createWriteStream("foo.png"))
.on("finish", done);
```
**Simple HTML to PDF web service**
Here's a simple web server that converts HTML to PDF. Options can be supplied as query parameters:
```js
var url = require('url');
var http = require('http');
var wkhtmltox = require('wkhtmltox');
var converter = new wkhtmltox();
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'application/pdf'});
converter.pdf(req, url.parse(req.url, true).query).pipe(res);
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
```
Access it with [curl](http://curl.haxx.se/)
curl -d @test.html -s "http://localhost:1337/?copies=2" -o test.pdf