summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlvin Penner <penner@vaxxine.com>2017-03-12 23:12:23 +0000
committerapenner <penner@vaxxine.com>2017-03-12 23:12:23 +0000
commit4aacbb7d40826888f18238ce8cad134b5dbed934 (patch)
tree31e25fa2b1e369a3cb343bf77163be76030f774b
parentLPE Powerstroke dialog - Use Gtk::Grid (diff)
downloadinkscape-4aacbb7d40826888f18238ce8cad134b5dbed934.tar.gz
inkscape-4aacbb7d40826888f18238ce8cad134b5dbed934.zip
extensions. dxf output & print_win32_vector. compensate for viewbox. (Bug 1672066)
Fixed bugs: - https://launchpad.net/bugs/1672066 (bzr r15590)
-rwxr-xr-xshare/extensions/dxf_outlines.py9
-rwxr-xr-xshare/extensions/print_win32_vector.py10
2 files changed, 17 insertions, 2 deletions
diff --git a/share/extensions/dxf_outlines.py b/share/extensions/dxf_outlines.py
index e30637f55..74b4ed465 100755
--- a/share/extensions/dxf_outlines.py
+++ b/share/extensions/dxf_outlines.py
@@ -342,8 +342,15 @@ class MyEffect(inkex.Effect):
scale = 25.4/96 # if no scale is specified, assume inch as baseunit
scale /= self.unittouu('1px')
h = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])
- self.groupmat = [[[scale, 0.0, 0.0], [0.0, -scale, h*scale]]]
doc = self.document.getroot()
+ # process viewBox height attribute to correct page scaling
+ viewBox = doc.get('viewBox')
+ if viewBox:
+ viewBox2 = viewBox.split(',')
+ if len(viewBox2) < 4:
+ viewBox2 = viewBox.split(' ')
+ scale *= h / self.unittouu(self.addDocumentUnit(viewBox2[3]))
+ self.groupmat = [[[scale, 0.0, 0.0], [0.0, -scale, h*scale]]]
self.process_group(doc)
if self.options.ROBO == 'true':
self.ROBO_output()
diff --git a/share/extensions/print_win32_vector.py b/share/extensions/print_win32_vector.py
index 984a10eed..99365fc5e 100755
--- a/share/extensions/print_win32_vector.py
+++ b/share/extensions/print_win32_vector.py
@@ -200,8 +200,16 @@ class MyEffect(inkex.Effect):
self.scale = (ord(pDevMode[58]) + 256.0*ord(pDevMode[59]))/96 # use PrintQuality from DEVMODE
self.scale /= self.unittouu('1px')
- self.groupmat = [[[self.scale, 0.0, 0.0], [0.0, self.scale, 0.0]]]
+ h = self.unittouu(self.document.getroot().xpath('@height', namespaces=inkex.NSS)[0])
doc = self.document.getroot()
+ # process viewBox height attribute to correct page scaling
+ viewBox = doc.get('viewBox')
+ if viewBox:
+ viewBox2 = viewBox.split(',')
+ if len(viewBox2) < 4:
+ viewBox2 = viewBox.split(' ')
+ self.scale *= h / self.unittouu(self.addDocumentUnit(viewBox2[3]))
+ self.groupmat = [[[self.scale, 0.0, 0.0], [0.0, self.scale, 0.0]]]
self.process_group(doc)
mygdi.EndDoc(self.hDC)