Svg Utils for pasing SVGFile and manipulate Matrix object like Snap.svg
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
demo
libs
test
.gitignore
.travis.yml
CHANGELOG
LICENSE
README.md
index.js
package.json

README.md

svgutils

Svg Utils for pasing SVGFile and manipulate Matrix object like Snap.svg

npm status build status dependency status Code Climate experimental Flattr this git repo

Install

npm install svgutils

Requirements

NodeJS

Required version : 0.10.22

Usage

With SVGUtils you can :

  • Convert SVG Document to JSON
  • Convert JSON to SVG Document
  • Manipulate Svg
  • Use Matrix to SVG or elements
  • ...

Warning

For Text and Group, the boundingbox result is not true but it's enough for basic manipulations

Loading SVG file

var Svg = require('svgutils').Svg;


Svg.fromSvgDocument(__dirname + '/test2.svg', function(err, svg){
    // ...
});

Convert SVG file to JSON

var Svg = require('svgutils').Svg;

Svg.fromSvgDocument(__dirname + '/test2.svg', function(err, svg){
    if(err){
        throw new Error('SVG file not found or invalid');
    }

    var json = svg.toJSON();
});

Apply Matrix and get transformed svg

Currents Matrix only

var Svg = require('svgutils').Svg;

Svg.fromSvgDocument(__dirname + '/test2.svg', function(err, svg){
    if(err){
        throw new Error('SVG file not found or invalid');
    }

    svg.applyMatrix(null, function(newSvg){
        console.log(newSvg.toString());
    });
});

Externals and currents Matrix

var Svg     = require('svgutils').Svg,
    Matrix  = require('svgutils';.Matrix;

Svg.fromSvgDocument(__dirname + '/test2.svg', function(err, svg){
    if(err){
        throw new Error('SVG file not found or invalid');
    }

    // Ex : apply translate(10, 20) to all svg
    svg.applyMatrix(new Matrix(1, 0, 0, 1, 10, 20), function(newSvg){
        console.log(newSvg.toString());
    });
});

Save generated SVG or Convert to PNG

Save SVG

var Svg     = require('svgutils').Svg,
    Matrix  = require('svgutils';.Matrix;

Svg.fromSvgDocument(__dirname + '/test2.svg', function(err, svg){
    if(err){
        throw new Error('SVG file not found or invalid');
    }

    svg.save({ output : '/home/user/svg.svg' }, function(err, filename){
        if(err){
            throw err;
        }
    });
});

Save PNG

var Svg     = require('svgutils').Svg,
    Matrix  = require('svgutils';.Matrix;

Svg.fromSvgDocument(__dirname + '/test2.svg', function(err, svg){
    if(err){
        throw new Error('SVG file not found or invalid');
    }

    svg.savePng({ output : '/home/user/svg.png' }, function(err, filename){
        if(err){
            throw err;
        }
    });
});

Convert others formats to SVG

DXF to SVG (thanks to Thomas Desmoulin and his DXF-parsing module)

You can create SVG from DXF file. You can, as you want, get specifics DXF layers.

Svg.fromDxfFile({
    path : __dirname + '/test.dxf'
}, function (err, svg) {
    if(err){
        throw new Error('SVG file not found or invalid');
    }
    
    // your converted svg
});

Contrbute

  • Fork the repo
  • create a branch git checkout -b my_branch
  • Add your changes
  • Commit your changes: git commit -am "Added some awesome stuff"
  • Push your branch: git push origin my_branch
  • Make a pull request to development branch