1 #!/usr/bin/env python \r
2 '''\r
3 Author: Jos Hirth, kaioa.com\r
4 License: GNU General Public License - http://www.gnu.org/licenses/gpl.html\r
5 Warranty: see above\r
6 '''\r
7 \r
8 DOCNAME='sodipodi:docname'\r
9 \r
10 import sys, simplestyle\r
11 try:\r
12 from xml.dom.minidom import parse\r
13 except:\r
14 sys.exit('The export_gpl.py module requires PyXML. Please download the latest version from <http://pyxml.sourceforge.net/>.')\r
15 \r
16 colortags=(u'fill',u'stroke',u'stop-color',u'flood-color',u'lighting-color')\r
17 colors={}\r
18 \r
19 def walk(node):\r
20 checkStyle(node)\r
21 if node.hasChildNodes():\r
22 childs=node.childNodes\r
23 for child in childs:\r
24 walk(child)\r
25 \r
26 def checkStyle(node):\r
27 if node.hasAttributes():\r
28 sa=node.getAttribute('style')\r
29 if sa!='':\r
30 styles=simplestyle.parseStyle(sa)\r
31 for c in range(len(colortags)):\r
32 if colortags[c] in styles.keys():\r
33 addColor(styles[colortags[c]])\r
34 \r
35 def addColor(col):\r
36 if simplestyle.isColor(col):\r
37 c=simplestyle.parseColor(col)\r
38 colors['%3i %3i %3i ' % (c[0],c[1],c[2])]=simplestyle.formatColoria(c).upper()\r
39 \r
40 stream = open(sys.argv[-1:][0],'r')\r
41 dom = parse(stream)\r
42 stream.close()\r
43 walk(dom)\r
44 print 'GIMP Palette\nName: %s\n#' % (dom.getElementsByTagName('svg')[0].getAttribute(DOCNAME).split('.')[0])\r
45 \r
46 for k,v in sorted(colors.items()):\r
47 print k+v