The inkscape command line utility as a readable/writable stream. This is handy for situations where you don't want to worry about writing the input to disc and reading the output afterwards.
The constructor optionally takes an array of command line options for
the inkscape
binary:
var Inkscape = require('inkscape'),
svgToPdfConverter = new Inkscape(['--export-pdf', '--export-width=1024']);
sourceStream.pipe(svgToPdfConverter).pipe(destinationStream);
Import type can also be fed to the constructor (converting PDF to PNG):
var Inkscape = require('inkscape'),
pdfToPngConverter = new Inkscape([
'--export-png',
'--export-width=1024',
'--import-pdf',
]);
sourceStream.pipe(pdfToPngConverter).pipe(destinationStream);
Inkscape as a web service (converts to a PNG):
var Inkscape = require('inkscape'),
http = require('http');
http
.createServer(function (req, res) {
if (req.headers['content-type'] === 'image/svg') {
res.writeHead(200, { 'Content-Type': 'image/png' });
req.pipe(new Inkscape(['-e'])).pipe(res);
} else {
res.writeHead(400);
res.end('Feed me an SVG!');
}
})
.listen(1337);
Make sure you have node.js and npm installed, and that the inkscape
binary is in your PATH, then run:
npm install inkscape
3-clause BSD license -- see the LICENSE
file for details.