node-inkscape

0.0.1 • Public • Published

node-inkscape npm version SugarHai

Run inkscape from NodeJS. inkscape installation is required.

Install

# If using as a dependancy in your module 
npm install node-inkscape --save
 
# ...or for use in your project 
npm install node-inkscape --save-dev

Prior to using node-inkscape, you must install inkscape.

What’s inkscape?

Inkscape is professional quality vector graphics software which runs on Windows, Mac OS X and Linux. It is used by design professionals and hobbyists worldwide, for creating a wide variety of graphics such as illustrations, icons, logos, diagrams, maps and web graphics. Inkscape uses the [W3C][1] open standard [SVG]2 as its native format, and is free and open-source software.

So Then What’s Node-inkscape Do?

Node-inkscape is simply a bridge between the inkscape CLI (command-line interface) and NodeJS.

Usage

inkscape ( src args [options] callback )

Parameters

src

The src can be either the location of a file (./content/file.docx) or a string of textual input ("# Hello, Bananas").

args

The same list of arguments that inkscape accepts on the command line. Arguments are accepted as either a full String or as an Array.

Examples of Using Node-inkscape

Converting a PNG file to JPG

// In EcmaScript 5...
 
var nodeinkscape = require('node-inkscape');
var src, args, callback;
 
src = './word.docx';
 
// Arguments can be either a single string:
args = '-f docx -t markdown -o ./markdown.md';
// Or in an array of strings -- careful no spaces are present:
args = ['-f','docx','-t','markdown','-o','markdown.md'];
 
// Set your callback function
callback = function (err, result) {
 
  if (err) {
    console.error('Oh Nos: ',err);
  }
 
  // For output to files, the 'result' will be a boolean 'true'.
  // Otherwise, the converted value will be returned.
  console.log(result);
  return result;
};
 
// Call inkscape
nodeinkscape(src, args, callback);
// In ES-6 (ES-2015)
import nodeinkscape from 'node-inkscape'
 
let src = './word.docx';
 
// Arguments can be either a single String or in an Array
let args = '-f docx -t markdown -o ./markdown.md';
 
// Set your callback function
const callback = (err, result)=> {
 
  if (err) console.error('Oh Nos: ',err)
  return console.log(result), result
}
 
// Call inkscape
nodeinkscape(src, args, callback);

Converting a word.docx file and returning HTML.

var inkscape = require('node-inkscape'),
    src = './word.docx',
    // Arguments in either a single String or as an Array:
    args = '-f docx -t html5';
 
// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};
 
// Call inkscape
inkscape(src, args, callback);

This also works the other way ’round; converting a bit of HTML and saving it as word.docx

var inkscape = require('node-inkscape'),
    src = '<h1>Hello</h1><p>It&rsquo;s bananas</p>',
    // Arguments in either a single String or as an Array:
    args = '-f html -t docx -o word.docx';
 
// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};
 
// Call inkscape
inkscape(src, args, callback);

Or give-a-string/get-a-string: Markdown -> HTML

var inkscape = require('node-inkscape'),
    src = '# Hello \n\nIt\'s bananas',
    // Arguments in either a single String or as an Array:
    args = '-f markdown -t html';
 
// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};
 
// Call inkscape
inkscape(src, args, callback);

...and in reverse: HTML -> Markdown

var inkscape = require('node-inkscape'),
    src = '<h1>Hello</h1><p>It&rsquo;s bananas</p>',
    // Arguments in either a single String or as an Array:
    args = '-f html -t markdown --atx-headers';
 
// NOTE: The --atx-headers flag set above will produce <h1>s as:
// # Hello
//
// ...while omitting --atx-headers flat will result in this style:
// Hello
// =====
 
// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};
 
// Call inkscape
inkscape(src, args, callback);

One more thing...

It does URLs too.

var inkscape = require('node-inkscape'),
    src = 'https://www.npmjs.com/package/node-inkscape',
    // Arguments in either a single String or as an Array:
    args = '-f html -t docx -o node-inkscape.docx';
 
// Set your callback function
callback = function (err, result) {
  if (err) console.error('Oh Nos: ',err);
  // Without the -o arg, the converted value will be returned.
  return console.log(result), result;
};
 
// Call inkscape
inkscape(src, args, callback);

Wokavagor

...it can go sideways and slantways and longways and backways and squareways and frontways and any other ways that you can think of.

License

Copyright © Eric Shinn
Licensed under the MIT License

Package Sidebar

Install

npm i node-inkscape

Weekly Downloads

63

Version

0.0.1

License

MIT

Unpacked Size

9.58 kB

Total Files

4

Last publish

Collaborators

  • asaf050