summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2014-10-09 09:21:47 +0000
committertavmjong-free <tavmjong@free.fr>2014-10-09 09:21:47 +0000
commite78edc8f66d94a44d0cb4e4c9db9a14690ef10b9 (patch)
tree65d689bc8ed28c76cca748f47d4fd96b8ed96d90
parentAllow <sodipodi:namedview> attributes to be set by scripts. (diff)
downloadinkscape-e78edc8f66d94a44d0cb4e4c9db9a14690ef10b9.tar.gz
inkscape-e78edc8f66d94a44d0cb4e4c9db9a14690ef10b9.zip
Fix 'viewBox' and 'inkscape:document-units', add 'inkscape:cx' and 'inkscape:cy'.
(bzr r13584)
-rw-r--r--share/extensions/empty_page.py77
1 files changed, 47 insertions, 30 deletions
diff --git a/share/extensions/empty_page.py b/share/extensions/empty_page.py
index dc16bab97..34dee7fc4 100644
--- a/share/extensions/empty_page.py
+++ b/share/extensions/empty_page.py
@@ -1,5 +1,7 @@
#!/usr/bin/env python
+# Rewritten by Tavmjong Bah to add correct viewBox, inkscape:cx, etc. attributes
+
import inkex
class C(inkex.Effect):
@@ -8,37 +10,52 @@ class C(inkex.Effect):
self.OptionParser.add_option("-s", "--size", action="store", type="string", dest="page_size", default="a4", help="Page size")
self.OptionParser.add_option("-o", "--orientation", action="store", type="string", dest="page_orientation", default="vertical", help="Page orientation")
- def effect(self):
+ def effect(self):
+
+ width = 300
+ height = 300
+ units = 'px'
+
+ if self.options.page_size == "a5":
+ width = 148
+ height= 210
+ units = 'mm'
+
+ if self.options.page_size == "a4":
+ width = 210
+ height= 297
+ units = 'mm'
+
+ if self.options.page_size == "a3":
+ width = 297
+ height= 420
+ units = 'mm'
+
+ if self.options.page_size == "letter":
+ width = 8.5
+ height = 11
+ units = 'in'
+
+ if self.options.page_orientation == "horizontal":
+ width, height = height, width
+
+
root = self.document.getroot()
- root.set("width", "12in")
- root.set("height", "12in")
- if self.options.page_size == "a4" and self.options.page_orientation == "vertical":
- root.set("width", "210mm")
- root.set("height", "297mm")
- if self.options.page_size == "a4" and self.options.page_orientation == "horizontal":
- root.set("height", "210mm")
- root.set("width", "297mm")
-
- if self.options.page_size == "a5" and self.options.page_orientation == "vertical":
- root.set("width", "148mm")
- root.set("height", "210mm")
- if self.options.page_size == "a5" and self.options.page_orientation == "horizontal":
- root.set("width", "210mm")
- root.set("height", "148mm")
-
- if self.options.page_size == "a3" and self.options.page_orientation == "vertical":
- root.set("width", "297mm")
- root.set("height", "420mm")
- if self.options.page_size == "a3" and self.options.page_orientation == "horizontal":
- root.set("width", "420mm")
- root.set("height", "297mm")
-
- if self.options.page_size == "letter" and self.options.page_orientation == "vertical":
- root.set("width", "8.5in")
- root.set("height", "11in")
- if self.options.page_size == "letter" and self.options.page_orientation == "horizontal":
- root.set("width", "11in")
- root.set("height", "8.5in")
+ root.set("id", "SVGRoot")
+ root.set("width", str(width) + units)
+ root.set("height", str(height) + units)
+ 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'), units)
+
+ # 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 ) )
+
c = C()
c.affect()