添付ファイル 'eps2svg.py'
ダウンロード 1 # convert eps(pepacra) to svg(inkscape)
2 # (c) masahiko
3 # date-written 2009-04-23
4 # up-to-date 2011-2-26
5
6 import sys
7 import string
8
9 def header():
10 return '''<?xml version="1.0" standalone="no"?>
11 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
12 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
13 <svg xmlns="http://www.w3.org/2000/svg"
14 xmlns:xlink="http://www.w3.org/1999/xlink"
15 width="744.09448" height="1052.3622"
16 viewBox="-25 -800 550 850">
17 <title>svg sample</title>
18 <defs>
19 <style type="text/css"><![CDATA[
20 .Face { fill:#aabbff; stroke:none; }
21 .Mountain { fill:none; stroke:#666666; stroke-dasharray:9,2,1,2;}
22 .Valley { fill:none; stroke:#666666; stroke-dasharray:4,4;}
23 .Cut { fill:none; stroke:#000000; }
24 ]]></style>
25 </defs>
26 '''
27
28 def tail():
29 return '''</svg>
30 '''
31
32 def hanten(y):
33 temp = -float(y)
34 yy = "%f" % temp
35 return yy
36
37 def eps2svg(name):
38 print 'convert', name, '.eps to .svg ... ',
39 infile = open(name+'.eps', 'r')
40 outfile = open(name+'.svg', 'w')
41 outfile.write( header() )
42 d = ''
43 s = 'Cut'
44 while 1:
45 temp = infile.readline()
46 if temp == '': break
47 tok = string.split(temp)
48 if string.find(temp, 'newpath') >= 0: # newpath
49 if d != '':
50 outfile.write('<path class="Face" d="' + d + '" />\n')
51 d = ''
52 elif string.find(temp, 'moveto') >= 0: # 121.4 308.0 moveto
53 d = 'M ' + tok[0] + ' ' + hanten(tok[1])
54 elif string.find(temp, 'lineto') >= 0: # 121.4 308.0 lineto
55 d = d + ' L ' + tok[0] + ' ' + hanten(tok[1])
56 elif string.find(temp, 'closepath') >= 0: # closepath
57 d = d + ' Z'
58 elif string.find(temp, 'fill') >= 0: # fill
59 if d != '':
60 outfile.write('<path class="Face" d="' + d + '" />\n')
61 d = ''
62 elif string.find(temp, 'setdash') >= 0: # [?] 0 setdash
63 if len(tok) > 5:
64 s = 'Mountain'
65 elif len(tok) > 3:
66 s = 'Valley'
67 else:
68 s = 'Cut'
69 elif string.find(temp, 'stroke') >= 0: # stroke
70 if d != '':
71 outfile.write('<path class="' + s + '" d="' + d + '" />\n')
72 d = ''
73 outfile.write( tail() )
74 infile.close()
75 outfile.close()
76 print 'done'
77
78 # --- command
79
80 if len(sys.argv) < 2:
81 print 'usage: python eps2svg.py filename ...'
82 else:
83 for name in sys.argv[1:]:
84 ex = string.find(name, '.eps')
85 if ex == 0:
86 ex = string.find(name, '.EPS')
87 if ex >= 0:
88 eps2svg(name[0:ex])
89 else:
90 eps2svg(name)
添付ファイル
添付ファイルを参照するには、(下のファイル一覧にあるように)attachment:filenameと記述します。 [get]リンクのURLは変更される可能性が高いので、利用しないでください。ファイルを添付する権限がありません。