diff options
| author | Tavmjong Bah <tavmjong@free.fr> | 2014-10-10 18:56:07 +0000 |
|---|---|---|
| committer | tavmjong-free <tavmjong@free.fr> | 2014-10-10 18:56:07 +0000 |
| commit | e18383b3ae2e644cabdcccbbdaf3da850a62e814 (patch) | |
| tree | 8f3b1f65b387ee84f10d95e274fa68e5f7795ea8 | |
| parent | Added background and no border options. (diff) | |
| download | inkscape-e18383b3ae2e644cabdcccbbdaf3da850a62e814.tar.gz inkscape-e18383b3ae2e644cabdcccbbdaf3da850a62e814.zip | |
New procedural templates.
(bzr r13341.1.267)
| -rw-r--r-- | share/extensions/empty_business_card.inx | 32 | ||||
| -rw-r--r-- | share/extensions/empty_business_card.py | 45 | ||||
| -rw-r--r-- | share/extensions/empty_desktop.inx | 39 | ||||
| -rw-r--r-- | share/extensions/empty_desktop.py | 46 | ||||
| -rw-r--r-- | share/extensions/empty_dvd_cover.inx | 31 | ||||
| -rw-r--r-- | share/extensions/empty_dvd_cover.py | 64 | ||||
| -rw-r--r-- | share/extensions/empty_generic.inx | 47 | ||||
| -rw-r--r-- | share/extensions/empty_generic.py | 82 | ||||
| -rw-r--r-- | share/extensions/empty_icon.inx | 24 | ||||
| -rw-r--r-- | share/extensions/empty_icon.py | 36 | ||||
| -rw-r--r-- | share/extensions/empty_video.inx | 35 | ||||
| -rw-r--r-- | share/extensions/empty_video.py | 46 |
12 files changed, 527 insertions, 0 deletions
diff --git a/share/extensions/empty_business_card.inx b/share/extensions/empty_business_card.inx new file mode 100644 index 000000000..1513ebf26 --- /dev/null +++ b/share/extensions/empty_business_card.inx @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + <_name>Business Card</_name> + <id>org.inkscape.render.empty_business_card</id> + <dependency type="executable" location="extensions">business_card.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + + <param name="size" _gui-text="Business card size:" type="enum"> + <item value="74mmx52mm">74mm x 52mm (A8)</item> + <item value="85mmx55mm">85mm x 55mm (Europe)</item> + <item value="90mmx55mm">90mm x 55mm (Australia, India, ...)</item> + <item value="91mmx55mm">91mm x 55mm (Japan)</item> + <item value="90mmx54mm">90mm x 54mm (China, ...)</item> + <item value="90mmx50mm">90mm x 50mm (India, Russia, ...)</item> + <item value="3.5inx2in">3.5in x 2in (United States, Canada)</item> + </param> + + <effect needs-live-preview="false"> + <object-type>all</object-type> + <effects-menu hidden="true" /> + </effect> + <inkscape:_templateinfo> + <inkscape:_name>Business Card...</inkscape:_name> + <inkscape:author>Tavmjong Bah</inkscape:author> + <inkscape:_shortdesc>Business card of chosen size.</inkscape:_shortdesc> + <inkscape:date>2014-10-09</inkscape:date> + <inkscape:_keywords>business card</inkscape:_keywords> + </inkscape:_templateinfo> + <script> + <command reldir="extensions" interpreter="python">business_card.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/empty_business_card.py b/share/extensions/empty_business_card.py new file mode 100644 index 000000000..586c37abc --- /dev/null +++ b/share/extensions/empty_business_card.py @@ -0,0 +1,45 @@ +#!/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="card_size", default="90mmx55mm", help="Business card size") + + def effect(self): + + size = self.options.card_size + + p = re.compile('([0-9.]*)([a-z][a-z])x([0-9.]*)([a-z][a-z])') + m = p.match( size ) + width = m.group(1) + width_unit = m.group(2) + height = m.group(3) + height_unit = m.group(4) + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", width + width_unit) + root.set("height", height + height_unit) + root.set("viewBox", "0 0 " + width + " " + 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'), width_unit) + + width_int = int(self.uutounit(float(width), 'px')) + height_int = int(self.uutounit(float(height), 'px')) + + namedview.set(inkex.addNS('zoom', 'inkscape'), str(2) ) + namedview.set(inkex.addNS('cx', 'inkscape'), str(width_int/2.0) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(height_int/2.0) ) + + +c = C() +c.affect() diff --git a/share/extensions/empty_desktop.inx b/share/extensions/empty_desktop.inx new file mode 100644 index 000000000..75762b660 --- /dev/null +++ b/share/extensions/empty_desktop.inx @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + <_name>Desktop</_name> + <id>org.inkscape.render.empty_desktop</id> + <dependency type="executable" location="extensions">empty_desktop.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + + <param name="size" _gui-text="Desktop size:" type="enum"> + <item value="Custom">Custom</item> + <item value="640x480">640x480 (VGA)</item> + <item value="800x600">800x600 (SVGA)</item> + <item value="1024x768">1024x768 (XGA)</item> + <item value="1366x768">1366x768 (HD)</item> + <item value="1600x900">1600x900 (HD+)</item> + <item value="1600x1200">1600x1200 (UXGA)</item> + <item value="1920x1080">1920x1080 (FHD)</item> + <item value="1920x1200">1920x1200 (WUXGA)</item> + <item value="2560x1600">2560x1600 (WQXGA)</item> + </param> + + <!-- Maximum size is '16k' --> + <param name="width" _gui-text="Custom Width:" type="int" min="240" max="15360">1920</param> + <param name="height" _gui-text="Custom Height:" type="int" min="160" max="8640">1080</param> + + <effect needs-live-preview="false"> + <object-type>all</object-type> + <effects-menu hidden="true" /> + </effect> + <inkscape:_templateinfo> + <inkscape:_name>Desktop...</inkscape:_name> + <inkscape:author>Tavmjong Bah</inkscape:author> + <inkscape:_shortdesc>Empty desktop of chosen size.</inkscape:_shortdesc> + <inkscape:date>2014-10-09</inkscape:date> + <inkscape:_keywords>empty desktop</inkscape:_keywords> + </inkscape:_templateinfo> + <script> + <command reldir="extensions" interpreter="python">empty_desktop.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/empty_desktop.py b/share/extensions/empty_desktop.py new file mode 100644 index 000000000..31cb35f9d --- /dev/null +++ b/share/extensions/empty_desktop.py @@ -0,0 +1,46 @@ +#!/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() diff --git a/share/extensions/empty_dvd_cover.inx b/share/extensions/empty_dvd_cover.inx new file mode 100644 index 000000000..facb523d1 --- /dev/null +++ b/share/extensions/empty_dvd_cover.inx @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + <_name>DVD Cover</_name> + <id>org.inkscape.render.empty_dvd_cover</id> + <dependency type="executable" location="extensions">empty_dvd_cover.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + + <param name="spine" _gui-text="DVD spine width:" type="enum"> + <item value="14">Normal (14mm)</item> + <item value="9">Slim (9mm)</item> + <item value="7">Super Slim (7mm)</item> + <item value="5">Ultra Slim (5mm)</item> + </param> + + <param name="bleed" _gui-text="DVD cover bleed (mm):" type="float" min="0" max="25">3</param> + + <effect needs-live-preview="false"> + <object-type>all</object-type> + <effects-menu hidden="true" /> + </effect> + <inkscape:_templateinfo> + <inkscape:_name>DVD Cover...</inkscape:_name> + <inkscape:author>Tavmjong Bah</inkscape:author> + <inkscape:_shortdesc>DVD cover of chosen size.</inkscape:_shortdesc> + <inkscape:date>2014-10-10</inkscape:date> + <inkscape:_keywords>dvd cover</inkscape:_keywords> + </inkscape:_templateinfo> + <script> + <command reldir="extensions" interpreter="python">empty_dvd_cover.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/empty_dvd_cover.py b/share/extensions/empty_dvd_cover.py new file mode 100644 index 000000000..1456de51d --- /dev/null +++ b/share/extensions/empty_dvd_cover.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--spine", action="store", type="string", dest="dvd_cover_spine", default="normal", help="Dvd spine width") + self.OptionParser.add_option("-b", "--bleed", action="store", type="float", dest="dvd_cover_bleed", default="3", help="Bleed (extra area around image") + + def create_horizontal_guideline(self, name, position): + self.create_guideline(name, "0,1", 0, position) + + def create_vertical_guideline(self, name, position): + self.create_guideline(name, "1,0", position, 0) + + def create_guideline(self, label, orientation, x,y): + namedview = self.root.find(inkex.addNS('namedview', 'sodipodi')) + guide = inkex.etree.SubElement(namedview, inkex.addNS('guide', 'sodipodi')) + guide.set("orientation", orientation) + guide.set("position", str(x)+","+str(y)) + # No need to set label (causes translation problems, etc.) + # guide.set(inkex.addNS('label', 'inkscape'), label) + + def effect(self): + + # Dimensions in mm + width = 259.0 # Before adding spine width or bleed + height = 183.0 # Before adding bleed + + bleed = self.options.dvd_cover_bleed + spine = float( self.options.dvd_cover_spine ) + + width += spine + width += 2.0 * bleed + height += 2.0 * bleed + + self.root = self.document.getroot() + self.root.set("id", "SVGRoot") + self.root.set("width", str(width) + 'mm') + self.root.set("height", str(height) + 'mm') + self.root.set("viewBox", "0 0 " + str(width) + " " + str(height) ) + + namedview = self.root.find(inkex.addNS('namedview', 'sodipodi')) + if namedview is None: + namedview = inkex.etree.SubElement( self.root, inkex.addNS('namedview', 'sodipodi') ); + + namedview.set(inkex.addNS('document-units', 'inkscape'), "mm") + + # Until units are supported in 'cx', etc. + namedview.set(inkex.addNS('cx', 'inkscape'), str(self.uutounit( width, 'px' )/2.0 ) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(self.uutounit( height, 'px' )/2.0 ) ) + + self.create_horizontal_guideline("bottom", str(self.uutounit( bleed, 'px' )) ) + self.create_horizontal_guideline("top", str(self.uutounit( height-bleed, 'px' )) ) + self.create_vertical_guideline("left edge", str(self.uutounit( bleed, 'px' )) ) + self.create_vertical_guideline("left spline", str(self.uutounit( (width-spine)/2.0,'px' )) ) + self.create_vertical_guideline("right spline", str(self.uutounit( (width+spine)/2.0,'px' )) ) + self.create_vertical_guideline("left edge", str(self.uutounit( width-bleed, 'px' )) ) + +c = C() +c.affect() diff --git a/share/extensions/empty_generic.inx b/share/extensions/empty_generic.inx new file mode 100644 index 000000000..b430cfba5 --- /dev/null +++ b/share/extensions/empty_generic.inx @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + <_name>Generic Canvas</_name> + <id>org.inkscape.render.empty_generic_canvas</id> + <dependency type="executable" location="extensions">empty_generic.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + + <param name="width" _gui-text="Custom Width:" type="float" min="1" max="15360">800</param> + <param name="height" _gui-text="Custom Height:" type="float" min="1" max="8640">600</param> + + <param name="unit" _gui-text="SVG Unit:" type="enum"> + <item value="px">'px'</item> + <item value="in">'in'</item> + <item value="mm">'mm'</item> + <item value="cm">'cm'</item> + <item value="pc">'pc'</item> + <item value="pt">'pt'</item> + </param> + + <param name="background" _gui-text="Canvas background:" type="enum"> + <item value="normal">Normal</item> + <item value="black">Black Opaque</item> + <item value="gray">Gray Opaque</item> + <item value="white">White Opaque</item> + </param> + + <param name="noborder" type="boolean" _gui-text="Hide border">false</param> + + <!-- + <param name="layer" type="boolean" _gui-text="Include default layer">true</param> + --> + + <effect needs-live-preview="false"> + <object-type>all</object-type> + <effects-menu hidden="true" /> + </effect> + <inkscape:_templateinfo> + <inkscape:_name>Generic canvas...</inkscape:_name> + <inkscape:author>Tavmjong Bah</inkscape:author> + <inkscape:_shortdesc>Genric canvas of choosen size.</inkscape:_shortdesc> + <inkscape:date>2014-10-09</inkscape:date> + <inkscape:_keywords>empty generic canvas</inkscape:_keywords> + </inkscape:_templateinfo> + <script> + <command reldir="extensions" interpreter="python">empty_generic.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/empty_generic.py b/share/extensions/empty_generic.py new file mode 100644 index 000000000..62e27d220 --- /dev/null +++ b/share/extensions/empty_generic.py @@ -0,0 +1,82 @@ +#!/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("-w", "--width", action="store", type="int", dest="generic_width", default="1920", help="Custom width") + self.OptionParser.add_option("-z", "--height", action="store", type="int", dest="generic_height", default="1080", help="Custom height") + self.OptionParser.add_option("-u", "--unit", action="store", type="string", dest="generic_unit", default="px", help="SVG Unit") + self.OptionParser.add_option("-b", "--background", action="store", type="string", dest="generic_background", default="normal", help="Canvas background") + self.OptionParser.add_option("-n", "--noborder", action="store", type="inkbool", dest="generic_noborder", default=False) + # self.OptionParser.add_option("-l", "--layer", action="store", type="inkbool", dest="generic_layer", default=True) + + def effect(self): + + width = self.options.generic_width + height = self.options.generic_height + unit = self.options.generic_unit + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", str(width) + unit) + root.set("height", str(height) + unit) + 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'), unit) + + # Until units are supported in 'cx', etc. + namedview.set(inkex.addNS('zoom', 'inkscape'), str(512.0/self.uutounit( width, 'px' )) ) + namedview.set(inkex.addNS('cx', 'inkscape'), str(self.uutounit( width, 'px' )/2.0 ) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(self.uutounit( height, 'px' )/2.0 ) ) + + if self.options.generic_background == "white": + namedview.set( 'pagecolor', "#ffffff" ) + namedview.set( 'bordercolor', "#666666" ) + namedview.set(inkex.addNS('pageopacity', 'inkscape'), "1.0" ) + namedview.set(inkex.addNS('pageshadow', 'inkscape'), "0" ) + + if self.options.generic_background == "gray": + namedview.set( 'pagecolor', "#808080" ) + namedview.set( 'bordercolor', "#444444" ) + namedview.set(inkex.addNS('pageopacity', 'inkscape'), "1.0" ) + namedview.set(inkex.addNS('pageshadow', 'inkscape'), "0" ) + + if self.options.generic_background == "black": + namedview.set( 'pagecolor', "#000000" ) + namedview.set( 'bordercolor', "#999999" ) + namedview.set(inkex.addNS('pageopacity', 'inkscape'), "1.0" ) + namedview.set(inkex.addNS('pageshadow', 'inkscape'), "0" ) + + if self.options.generic_noborder: + pagecolor = namedview.get( 'pagecolor' ) + namedview.set( 'bordercolor', pagecolor ) + namedview.set( 'borderopacity', "0" ) + + # This nees more thought... we need to set "Current layer" to (root), how? + # if self.options.generic_layer: + # # Add layer + # inkex.debug( "We want a layer" ) + # else: + # # Remove layer id default document (assuming only one) + # inkex.debug( "We don't want a layer" ) + # layer_node = self.current_layer + # if layer_node is not None: + # inkex.debug( "We have layer" ) + # root.remove(layer_node) + # try: + # del namedview.attrib[ inkex.addNS('current-layer', 'inkscape') ] + # except: + # pass + + +c = C() +c.affect() diff --git a/share/extensions/empty_icon.inx b/share/extensions/empty_icon.inx new file mode 100644 index 000000000..9e36b9d20 --- /dev/null +++ b/share/extensions/empty_icon.inx @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + <_name>Icon</_name> + <id>org.inkscape.render.empty_icon</id> + <dependency type="executable" location="extensions">empty_icon.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + + <param name="size" _gui-text="Icon size:" type="int" min="8" max="256">16</param> + + <effect needs-live-preview="false"> + <object-type>all</object-type> + <effects-menu hidden="true" /> + </effect> + <inkscape:_templateinfo> + <inkscape:_name>Icon...</inkscape:_name> + <inkscape:author>Tavmjong Bah</inkscape:author> + <inkscape:_shortdesc>Empty icon of chosen size.</inkscape:_shortdesc> + <inkscape:date>2014-10-09</inkscape:date> + <inkscape:_keywords>empty icon</inkscape:_keywords> + </inkscape:_templateinfo> + <script> + <command reldir="extensions" interpreter="python">empty_icon.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/empty_icon.py b/share/extensions/empty_icon.py new file mode 100644 index 000000000..979edbae4 --- /dev/null +++ b/share/extensions/empty_icon.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python + +# Written by Tavmjong Bah + +import inkex + +class C(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + self.OptionParser.add_option("-s", "--size", action="store", type="int", dest="icon_size", default="16", help="Icon size") + + def effect(self): + + size = self.options.icon_size + + root = self.document.getroot() + root.set("id", "SVGRoot") + root.set("width", str(size) + 'px') + root.set("height", str(size) + 'px') + root.set("viewBox", "0 0 " + str(size) + " " + str(size) ) + + 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('zoom', 'inkscape'), str(256.0/size) ) + namedview.set(inkex.addNS('cx', 'inkscape'), str(size/2.0) ) + namedview.set(inkex.addNS('cy', 'inkscape'), str(size/2.0) ) + namedview.set(inkex.addNS('grid-bbox', 'inkscape'), "true" ) + + + +c = C() +c.affect() diff --git a/share/extensions/empty_video.inx b/share/extensions/empty_video.inx new file mode 100644 index 000000000..8ca148cfc --- /dev/null +++ b/share/extensions/empty_video.inx @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<inkscape-extension xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"> + <_name>Video Screen</_name> + <id>org.inkscape.render.empty_video</id> + <dependency type="executable" location="extensions">empty_video.py</dependency> + <dependency type="executable" location="extensions">inkex.py</dependency> + + <param name="size" _gui-text="Video size:" type="enum"> + <item value="Custom">Custom</item> + <item value="720x486">720x486 (NTSC)</item> + <item value="720x576">720x576 (PAL)</item> + <item value="1920x1080">1920x1080 (HDTV)</item> + <item value="3840x2160">3840x2160 (4K)</item> + <item value="7680x4320">7680x4320 (8K)</item> + </param> + + <!-- Maximum size is '16k' --> + <param name="width" _gui-text="Custom Width:" type="int" min="240" max="15360">1920</param> + <param name="height" _gui-text="Custom Height:" type="int" min="160" max="8640">1080</param> + + <effect needs-live-preview="false"> + <object-type>all</object-type> + <effects-menu hidden="true" /> + </effect> + <inkscape:_templateinfo> + <inkscape:_name>Video...</inkscape:_name> + <inkscape:author>Tavmjong Bah</inkscape:author> + <inkscape:_shortdesc>Video screen of chosen size.</inkscape:_shortdesc> + <inkscape:date>2014-10-09</inkscape:date> + <inkscape:_keywords>empty video</inkscape:_keywords> + </inkscape:_templateinfo> + <script> + <command reldir="extensions" interpreter="python">empty_video.py</command> + </script> +</inkscape-extension> diff --git a/share/extensions/empty_video.py b/share/extensions/empty_video.py new file mode 100644 index 000000000..4b440704c --- /dev/null +++ b/share/extensions/empty_video.py @@ -0,0 +1,46 @@ +#!/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="video_size", default="16", help="Video size") + + self.OptionParser.add_option("-w", "--width", action="store", type="int", dest="video_width", default="1920", help="Custom width") + self.OptionParser.add_option("-z", "--height", action="store", type="int", dest="video_height", default="1080", help="Custom height") + + def effect(self): + + size = self.options.video_size + width = self.options.video_width + height = self.options.video_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() |
