welcome: please sign in
location: ペーパークラフトの設計の添付ファイル:eps2svg.py

添付ファイル '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は変更される可能性が高いので、利用しないでください。
 All files | Selected Files: delete move to page copy to page

ファイルを添付する権限がありません。