summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rwxr-xr-xshare/extensions/hpgl_output.py15
-rwxr-xr-xshare/extensions/synfig_output.py9
2 files changed, 24 insertions, 0 deletions
diff --git a/share/extensions/hpgl_output.py b/share/extensions/hpgl_output.py
index 58f82da71..f31c3fc2d 100755
--- a/share/extensions/hpgl_output.py
+++ b/share/extensions/hpgl_output.py
@@ -20,6 +20,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# standard library
import sys
+from inkex import NSS
# local libraries
import hpgl_encoder
import inkex
@@ -44,10 +45,18 @@ class HpglOutput(inkex.Effect):
self.OptionParser.add_option('--precut', action='store', type='inkbool', dest='precut', default='TRUE', help='Use precut')
self.OptionParser.add_option('--flat', action='store', type='float', dest='flat', default=1.2, help='Curve flatness')
self.OptionParser.add_option('--autoAlign', action='store', type='inkbool', dest='autoAlign', default='TRUE', help='Auto align')
+ self.DOCROTATE = "{http://www.inkscape.org/namespaces/inkscape}document_rotation"
def effect(self):
self.options.debug = False
# get hpgl data
+ svg = self.document.getroot()
+ xpathStr = '//sodipodi:namedview'
+ nv = svg.xpath(xpathStr, namespaces=NSS)
+ document_rotate = "0"
+ if nv != []:
+ document_rotate = nv[0].get(self.DOCROTATE)
+ nv[0].set(self.DOCROTATE,"0")
myHpglEncoder = hpgl_encoder.hpglEncoder(self)
try:
self.hpgl, debugObject = myHpglEncoder.getHpgl()
@@ -56,9 +65,13 @@ class HpglOutput(inkex.Effect):
# issue error if no paths found
inkex.errormsg(_("No paths where found. Please convert all objects you want to save into paths."))
self.hpgl = ''
+ if nv != [] and document_rotate:
+ nv[0].set("inkscape:document_rotation",document_rotate)
return
else:
type, value, traceback = sys.exc_info()
+ if nv != [] and document_rotate:
+ nv[0].set("inkscape:document_rotation",document_rotate)
raise ValueError, ("", type, value), traceback
# convert raw HPGL to HPGL
hpglInit = 'IN'
@@ -67,6 +80,8 @@ class HpglOutput(inkex.Effect):
if self.options.speed > 0:
hpglInit += ';VS%d' % self.options.speed
self.hpgl = hpglInit + self.hpgl + ';SP0;PU0,0;IN; '
+ if nv != [] and document_rotate:
+ nv[0].set("inkscape:document_rotation",document_rotate)
def output(self):
# print to file
diff --git a/share/extensions/synfig_output.py b/share/extensions/synfig_output.py
index bcd1eeaf3..461078951 100755
--- a/share/extensions/synfig_output.py
+++ b/share/extensions/synfig_output.py
@@ -1046,6 +1046,11 @@ def extract_width(style, width_attrib, mtx):
###### Main Class #########################################
class SynfigExport(SynfigPrep):
def __init__(self):
+ svg = self.document.getroot()
+ xpathStr = '//http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd}:namedview'
+ res = svg.xpath(xpathStr, namespaces=inkex.NSS)
+ self.document_rotate = res[0].get("inkscape:document_rotation")
+ res[0].set("inkscape:document_rotation","0")
SynfigPrep.__init__(self)
def effect(self):
@@ -1073,6 +1078,10 @@ class SynfigExport(SynfigPrep):
root_canvas.append(layer)
d.get_root_tree().write(sys.stdout)
+ svg = self.document.getroot()
+ xpathStr = '//http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd}:namedview'
+ res = svg.xpath(xpathStr, namespaces=inkex.NSS)
+ res[0].set("inkscape:document_rotation",self.document_rotate)
def convert_node(self, node, d):
"""Convert an SVG node to a list of Synfig layers"""