inkex.py revision d6d8a291f59b2497b0f0add73ece233840f35717
"""
A helper module for creating Inkscape extensions
Copyright (C) 2005 Aaron Spike, aaron@ekips.org
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
"""
#a dictionary of all of the xmlns prefixes in a standard inkscape doc
NSS = {
u'sodipodi' :u'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd',
u'cc' :u'http://web.resource.org/cc/',
u'svg' :u'http://www.w3.org/2000/svg',
u'dc' :u'http://purl.org/dc/elements/1.1/',
u'rdf' :u'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
u'inkscape' :u'http://www.inkscape.org/namespaces/inkscape',
u'xlink' :u'http://www.w3.org/1999/xlink'
}
#a dictionary of unit to user unit conversion factors
'''Returns userunits given a string representation of units in another system'''
if p:
else:
retval = 0.0
if u:
try:
except KeyError:
pass
return retval
try:
except:
sys.exit('The inkex.py module requires PyXML. Please download the latest version from <http://pyxml.sourceforge.net/>.')
return what
return True
return False
else:
class Effect:
"""A class for creating Inkscape SVG Effects"""
self.OptionParser = optparse.OptionParser(usage="usage: %prog [options] SVGfile",option_class=InkOption)
help="id attribute of object to manipulate")
pass
"""Collect command line arguments"""
"""Parse document in specified file or on stdin"""
try:
try:
except:
except:
if self.use_minidom:
else:
def getposinlayer(self):
#defaults
layerattr = xml.xpath.Evaluate('//sodipodi:namedview/@inkscape:current-layer',self.document,context=ctx)
if layerattr:
if layer:
if x and y:
self.view_center = (float(x), doc_height - float(y)) # FIXME: y-coordinate flip, eliminate it when it's gone in Inkscape
def getselected(self):
"""Collect selected nodes"""
for m in docIdNodes:
"""Serialize document into XML on stdout"""
"""Affect an SVG document with a callback effect"""
if make_new_id:
return new_id
try:
except:
retval = None
return retval