Skip to content

papandreou/node-inkscape

Repository files navigation

node-inkscape

NPM version Build Status Coverage Status Dependency Status

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);

Installation

Make sure you have node.js and npm installed, and that the inkscape binary is in your PATH, then run:

npm install inkscape

Releases

Changelog

License

3-clause BSD license -- see the LICENSE file for details.