[cairo] Editing SVG content with Cairo

Bryce W. Harrington b.harrington at samsung.com
Sat Jan 4 15:08:13 PST 2014


On Fri, Jan 03, 2014 at 07:26:03PM +0000, Simon Sapin wrote:
> On 03/01/2014 19:02, 影月 零 wrote:
> >Is it possible to edit the content of an SVG image and then save the
> >result back? I don't mean just drawing on top of the image, I mean
> >manipulating objects/vectors within the image. I've been searching but
> >haven't found a good sample or explanation of how this would be done, if
> >it is possible.
> 
> Hi,
> 
> cairo itself does not read or otherwise render SVG files. (There are
> SVG renderers based on cairo, though.)
> 
> You could use an XML parser and manipulate XML elements.

For modest SVG programmatic editing, this works pretty well.

> Or look into making an Inkscape extension:
> http://wiki.inkscape.org/wiki/index.php/ScriptingHOWTO

Inkscape extensions are okay for interactive editing of SVG using
Inkscape's internal scene graph of the parsed SVG.

Inkscape also has a rudimentary scripting interface, for non-interactive
editing of SVG.  See `man inkscape`, in particular the --verb, --select,
and --shell options are worth looking at.

Unfortunately Inkscape's internal scene graph is integrated, not a
standalone reusable library.  Would be nifty if it were, for cases like
these...

Bryce



More information about the cairo mailing list