diff options
| author | Alvin Penner <penner@vaxxine.com> | 2017-03-12 23:12:23 +0000 |
|---|---|---|
| committer | apenner <penner@vaxxine.com> | 2017-03-12 23:12:23 +0000 |
| commit | 4aacbb7d40826888f18238ce8cad134b5dbed934 (patch) | |
| tree | 31e25fa2b1e369a3cb343bf77163be76030f774b | |
| parent | LPE Powerstroke dialog - Use Gtk::Grid (diff) | |
| download | inkscape-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-x | share/extensions/dxf_outlines.py | 9 | ||||
| -rwxr-xr-x | share/extensions/print_win32_vector.py | 10 |
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) |
