node-inkscape
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 = ;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 { if err console; // For output to files, the 'result' will be a boolean 'true'. // Otherwise, the converted value will be returned. console; return result;}; // Call inkscape;
// In ES-6 (ES-2015) let src = './word.docx'; // Arguments can be either a single String or in an Arraylet args = '-f docx -t markdown -o ./markdown.md'; // Set your callback functionconst callback = { if err console return console result} // Call inkscape;
Converting a word.docx file and returning HTML.
var inkscape = src = './word.docx' // Arguments in either a single String or as an Array: args = '-f docx -t html5'; // Set your callback function { if err console; // Without the -o arg, the converted value will be returned. return console result;}; // Call inkscape;
This also works the other way ’round; converting a bit of HTML and saving it as word.docx
var inkscape = src = '<h1>Hello</h1><p>It’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 { if err console; // Without the -o arg, the converted value will be returned. return console result;}; // Call inkscape;
Or give-a-string/get-a-string: Markdown -> HTML
var 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 { if err console; // Without the -o arg, the converted value will be returned. return console result;}; // Call inkscape;
...and in reverse: HTML -> Markdown
var inkscape = src = '<h1>Hello</h1><p>It’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 { if err console; // Without the -o arg, the converted value will be returned. return console result;}; // Call inkscape;
One more thing...
It does URLs too.
var 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 { if err console; // Without the -o arg, the converted value will be returned. return console result;}; // Call inkscape;
...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