Inkscape Extension¶
This extension adds support for layers in inkscape. A layer in inkscape is an extended group container with additional label and locked attributes. Inkscape supports nested layers.
First import the inkscape extension:
import svgwrite
from svgwrite.extensions import Inkscape
dwg = svgwrite.Drawing('test-inkscape-extension.svg', profile='full', size=(640, 480))
You have to activate the extension for each drawing, because additional XML name spaces are required:
inkscape = Inkscape(dwg)
Create a new layer, all attributes that are supported by the group container are also allowed:
top_layer = inkscape.layer(label="Top LAYER 1", locked=True)
Add new layer as top level layer to the SVG drawing:
dwg.add(top_layer)
Create new elements and add them to a layer:
line = dwg.line((100, 100), (300, 100), stroke=svgwrite.rgb(10, 10, 16, '%'), stroke_width=10)
top_layer.add(line)
text = dwg.text('Test', insert=(100, 100), font_size=100, fill='red')
top_layer.add(text)
Create another layer and add them as nested layer to “Top LAYER 1”:
nested_layer = inkscape.layer(label="Nested LAYER 2", locked=False)
top_layer.add(nested_layer)
text = dwg.text('Test2', insert=(100, 200), font_size=100, fill='blue')
nested_layer.add(text)
dwg.save()