summaryrefslogtreecommitdiffstats
path: root/share/extensions
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-11-30 21:17:01 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-11-30 21:17:01 +0000
commitd0cdd588ade828a1f3b6e236fe559cf6372515b9 (patch)
tree7550d3da734613d42054f934b4d638729261ce0d /share/extensions
parentDutch translation update (diff)
downloadinkscape-d0cdd588ade828a1f3b6e236fe559cf6372515b9.tar.gz
inkscape-d0cdd588ade828a1f3b6e236fe559cf6372515b9.zip
I remove this extension because maybe isnt the best way to handle the problem. I attch it in the bug report https://bugs.launchpad.net/inkscape/+bug/1389723
(bzr r13780)
Diffstat (limited to 'share/extensions')
-rw-r--r--share/extensions/dpiswitcher.inx29
-rw-r--r--share/extensions/dpiswitcher.py236
2 files changed, 0 insertions, 265 deletions
diff --git a/share/extensions/dpiswitcher.inx b/share/extensions/dpiswitcher.inx
deleted file mode 100644
index a4f487c97..000000000
--- a/share/extensions/dpiswitcher.inx
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
- <inkscape-extension xmlns=
- "http://www.inkscape.org/namespace/inkscape/extension">
- <_name>DPI Switcher</_name>
- <id>org.inkscape.dpiswitcher</id>
- <dependency type="executable" location="extensions">dpiswitcher.py</dependency>
- <dependency type="executable" location="extensions">inkex.py</dependency>
- <param name="action" type="notebook">
- <page name="dpi_swicher" _gui-text="Switch DPI">
- <param name="switcher" type="enum" _gui-text="Type of convert:">
- <_item value="0">DPI Switch from 90 to 96</_item>
- <_item value="1">DPI Switch from 96 to 90</_item>
- </param>
- </page>
- <page name="page_info" _gui-text="Show page info">
- <_param name="d" type="description">Choose this tab if you would like to see page info previously to apply DPI Switcher.</_param>
- </page>
- </param>
-
- <effect needs-live-preview="false" needs-document="no">
- <object-type>all</object-type>
- <effects-menu>
- <submenu _name="Document"/>
- </effects-menu>
- </effect>
- <script>
- <command reldir="extensions" interpreter="python">dpiswitcher.py</command>
- </script>
-</inkscape-extension>
diff --git a/share/extensions/dpiswitcher.py b/share/extensions/dpiswitcher.py
deleted file mode 100644
index b110c259f..000000000
--- a/share/extensions/dpiswitcher.py
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env python
-'''
-This extension scale or reduce a document to fit diferent SVG DPI -90/96-
-
-Copyright (C) 2012 Jabiertxo Arraiza, jabier.arraiza@marker.es
-
-Version 0.4 - DPI Switcher
-
-TODO:
-Comment Better!!!
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-'''
-
-import inkex, sys, re, string
-from lxml import etree
-
-class DPISwitcher(inkex.Effect):
-
- def __init__(self):
- inkex.Effect.__init__(self)
- self.OptionParser.add_option("--switcher", action="store",
- type="string", dest="switcher", default="0",
- help="Select the DPI switch you want")
- self.OptionParser.add_option("--action", action="store",
- type="string", dest="action",
- default=None, help="")
- self.factor = 90.0/96.0
- self.units = "px"
- self.unitExponent = 1.0
-
- def scaleRoot(self, svg):
- widthNumber = re.sub("[a-zA-Z]", "", svg.get('width'))
- heightNumber = re.sub("[a-zA-Z]", "", svg.get('height'))
- if svg.get('viewBox'):
- widthNumber = svg.get('viewBox').split(" ")[2]
- heightNumber = svg.get('viewBox').split(" ")[3]
- widthDoc = str(float(widthNumber) * self.factor * self.unitExponent)
- heightDoc = str(float(heightNumber) * self.factor * self.unitExponent)
- if svg.get('height'):
- svg.set('height', heightDoc)
- if svg.get('width'):
- svg.set('width', widthDoc)
- svg.set('viewBox',"0 0 " + widthDoc + " " + heightDoc)
- self.scaleGuides(svg)
- self.scaleGrid(svg)
- if self.options.switcher == "1":
- self.factor = self.factor * self.unitExponent
- xpathStr = '//svg:rect | //svg:image | //svg:path | //svg:circle | //svg:ellipse | //svg:text'
- elements = svg.xpath(xpathStr, namespaces=inkex.NSS)
- for element in elements:
- box3DSide = element.get(inkex.addNS('box3dsidetype', 'inkscape'))
- if box3DSide:
- continue
- if element.get('transform'):
- if "matrix" in str(element.get('transform')):
- result = re.sub(r".*?matrix( \(|\()(.*?)\)", self.matrixElement, str(element.get('transform')))
- element.set('transform', result)
- if "scale" in str(element.get('transform')):
- result = re.sub(r".*?scale( \(|\()(.*?)\)", self.scaleElement, str(element.get('transform')))
- element.set('transform', result)
- if "translate" in str(element.get('transform')):
- result = re.sub(r".*?translate( \(|\()(.*?)\)", self.translateElement, str(element.get('transform')))
- element.set('transform', result)
- if "skew" in str(element.get('transform')):
- result = re.sub(r".*?skew( \(|\()(.*?)\)", self.skewElement, str(element.get('transform')))
- element.set('transform', result)
- if "scale" not in str(element.get('transform')) and "matrix" not in str(element.get('transform')):
- element.set('transform', str(element.get('transform')) + "scale(" + str(self.factor) + ", " + str(self.factor) + ")")
- else:
- element.set('transform', "scale(" + str(self.factor) + ", " + str(self.factor) + ")")
- xpathStr = '//svg:g'
- elements = svg.xpath(xpathStr, namespaces=inkex.NSS)
- for element in elements:
- if element.get('transform'):
- if "matrix" in str(element.get('transform')):
- result = re.sub(r".*?matrix( \(|\()(.*?)\)", self.matrixGroupElement, str(element.get('transform')))
- element.set('transform', result)
- if "translate" in str(element.get('transform')):
- result = re.sub(r".*?translate( \(|\()(.*?)\)", self.translateElement, str(element.get('transform')))
- element.set('transform', result)
- if "skew" in str(element.get('transform')):
- result = re.sub(r".*?skew( \(|\()(.*?)\)", self.skewElement, str(element.get('transform')))
- element.set('transform', result)
-
- def scaleGuides(self, svg):
- xpathStr = '//sodipodi:guide'
- guides = svg.xpath(xpathStr, namespaces=inkex.NSS)
- for guide in guides:
- point = string.split(guide.get("position"), ",")
- guide.set("position", str(float(point[0].strip()) * self.factor ) + "," + str(float(point[1].strip()) * self.factor ))
-
- def scaleGrid(self, svg):
- xpathStr = '//inkscape:grid'
- grids = svg.xpath(xpathStr, namespaces=inkex.NSS)
- for grid in grids:
- if self.options.switcher == "0":
- self.unitExponent = 1.0/(self.factor/self.__uuconv[grid.get("units")])
- self.factor = self.factor * self.unitExponent
- grid.set("units", "px")
- if grid.get("spacingx"):
- spacingx = str(float(re.sub("[a-zA-Z]", "", grid.get("spacingx"))) * self.factor) + "px"
- grid.set("spacingx", str(spacingx))
- if grid.get("spacingy"):
- spacingy = str(float(re.sub("[a-zA-Z]", "", grid.get("spacingy"))) * self.factor) + "px"
- grid.set("spacingy", str(spacingy))
- if grid.get("originx"):
- originx = str(float(re.sub("[a-zA-Z]", "", grid.get("originx"))) * self.factor) + "px"
- grid.set("originx", str(originx))
- if grid.get("originy"):
- originy = str(float(re.sub("[a-zA-Z]", "", grid.get("originy"))) * self.factor) + "px"
- grid.set("originy", str(originy))
-
- #a dictionary of unit to user unit conversion factors
- __uuconv = {'in':96.0, 'pt':1.33333333333, 'px':1.0, 'mm':3.77952755913, 'cm':37.7952755913,
- 'm':3779.52755913, 'km':3779527.55913, 'pc':16.0, 'yd':3456.0 , 'ft':1152.0}
-
- __uuconvLegazy = {'in':90.0, 'pt':1.25, 'px':1, 'mm':3.5433070866, 'cm':35.433070866, 'm':3543.3070866,
- 'km':3543307.0866, 'pc':15.0, 'yd':3240 , 'ft':1080}
-
- def scaleElement(self, m):
- scaleVal = m.group(2).replace(" ","")
- total = scaleVal.count(',')
- if total == 1:
- scaleVal = scaleVal.split(",")
- return "scale(" + str(float(scaleVal[0]) * self.factor) + "," + str(float(scaleVal[1]) * self.factor) + ")"
- else:
- return "scale(" + str(float(scaleVal) * self.factor) + ")"
-
-
- def translateElement(self, m):
- translateVal = m.group(2).replace(" ","")
- total = translateVal.count(',')
- if total == 1:
- translateVal = translateVal.split(",")
- return "translate(" + str(float(translateVal[0]) * self.factor) + "," + str(float(translateVal[1]) * self.factor) + ")"
- else:
- return "translate(" + str(float(translateVal) * self.factor) + ")"
-
- def skewElement(self, m):
- skeweVal = m.group(2).replace(" ","")
- total = skewVal.count(',')
- if total == 1:
- skeweVal = skewVal.split(",")
- return "skew(" + str(float(skewVal[0]) * self.factor) + "," + str(float(skewVal[1]) * self.factor) + ")"
- else:
- return "skew(" + str(float(skewVal) * self.factor) + ")"
-
- def matrixElement(self, m):
- matrixVal = m.group(2).replace(" ","")
- total = matrixVal.count(',')
- matrixVal = matrixVal.split(",")
- if total > 2:
- return "matrix(" + str(float(matrixVal[0]) * self.factor) + "," + str(float(matrixVal[1]) * self.factor) + "," + str(float(matrixVal[2]) * self.factor) + "," + str(float(matrixVal[3]) * self.factor) + "," + str(float(matrixVal[4]) * self.factor) + "," + str(float(matrixVal[5]) * self.factor) + ")"
- else:
- return "matrix(" + str(float(matrixVal[0]) * self.factor) + "," + str(float(matrixVal[1]) * self.factor) + "," + str(float(matrixVal[2]) * self.factor) + ")"
-
- def matrixGroupElement(self, m):
- matrixVal = m.group(2).replace(" ","")
- total = matrixVal.count(',')
- matrixVal = matrixVal.split(",")
- if total > 2:
- return "matrix(" + matrixVal[0] + "," + str(float(matrixVal[1]) * self.factor) + "," + matrixVal[2] + "," + str(float(matrixVal[3]) * self.factor) + "," + str(float(matrixVal[4]) * self.factor) + "," + str(float(matrixVal[5]) * self.factor) + ")"
- else:
- return "matrix(" + matrixVal[0] + "," + str(float(matrixVal[1]) * self.factor) + "," + str(float(matrixVal[2]) * self.factor) + ")"
-
- def effect(self):
- action = self.options.action.strip("\"") # TODO Is this a bug? (Extra " characters)
- saveout = sys.stdout
- sys.stdout = sys.stderr
- svg = self.document.getroot()
- if action == "page_info":
- print ":::SVG document related info:::"
- width = svg.get('width')
- if width:
- print "width: " + width
- height = svg.get('height')
- if height:
- print "height: " + height
- viewBox = svg.get('viewBox')
- if viewBox:
- print "viewBox: " + viewBox
- namedview = svg.find(inkex.addNS('namedview', 'sodipodi'))
- docunits= namedview.get(inkex.addNS('document-units', 'inkscape'))
- if docunits:
- print "document-units: " + docunits
- units = namedview.get('units')
- if units:
- print "units: " + units
- xpathStr = '//sodipodi:guide'
- guides = svg.xpath(xpathStr, namespaces=inkex.NSS)
- xpathStr = '//inkscape:grid'
- if guides:
- numberGuides = len(guides)
- print "Document has " + str(numberGuides) + " guides"
- grids = svg.xpath(xpathStr, namespaces=inkex.NSS)
- i = 1
- for grid in grids:
- print "Grid number " + str(i) + ": Units: " + grid.get("units")
- i = i+1
- else:
- if self.options.switcher == "0":
- self.factor = 96.0/90.0
- namedview = svg.find(inkex.addNS('namedview', 'sodipodi'))
- namedview.set(inkex.addNS('document-units', 'inkscape'), "px")
- self.units = re.sub("[0-9]*\.?[0-9]", "", svg.get('width'))
- if self.units and self.units <> "px":
- if self.options.switcher == "0":
- self.unitExponent = 1.0/(self.factor/self.__uuconv[self.units])
- else:
- self.unitExponent = 1.0/(self.factor/self.__uuconvLegazy[self.units])
- '''
- else:
- self.scaleGuides(svg)
- self.unitExponent = 1.0
- self.scaleGrid(svg)
- sys.stdout = saveout
- return
- '''
- self.scaleRoot(svg);
- sys.stdout = saveout
-
-effect = DPISwitcher()
-effect.affect()