#!/usr/bin/env python # Written by Tavmjong Bah import inkex import re class C(inkex.Effect): def __init__(self): inkex.Effect.__init__(self) self.OptionParser.add_option("-s", "--size", action="store", type="string", dest="desktop_size", default="16", help="Desktop size") self.OptionParser.add_option("-w", "--width", action="store", type="int", dest="desktop_width", default="1920", help="Custom width") self.OptionParser.add_option("-z", "--height", action="store", type="int", dest="desktop_height", default="1080", help="Custom height") def effect(self): size = self.options.desktop_size width = self.options.desktop_width height = self.options.desktop_height if size != "Custom": p = re.compile('([0-9]*)x([0-9]*)') m = p.match( size ) width = int(m.group(1)) height = int(m.group(2)) root = self.document.getroot() root.set("id", "SVGRoot") root.set("width", str(width) + 'px') root.set("height", str(height) + 'px') root.set("viewBox", "0 0 " + str(width) + " " + str(height) ) namedview = root.find(inkex.addNS('namedview', 'sodipodi')) if namedview is None: namedview = inkex.etree.SubElement( root, inkex.addNS('namedview', 'sodipodi') ); namedview.set(inkex.addNS('document-units', 'inkscape'), 'px') namedview.set(inkex.addNS('cx', 'inkscape'), str(width/2.0) ) namedview.set(inkex.addNS('cy', 'inkscape'), str(height/2.0) ) c = C() c.affect()