2013-08-05 138 views
6

我試圖將文本轉換爲曲線和路徑,例如:如何將文本轉換爲路徑?

文本=「歡迎來到蟒蛇」

我想這個文本轉換爲路徑。 另外,我正在嘗試以點列表的形式獲取此路徑信息。

我想將文本存儲爲SVG文件中的路徑。

就像在Adobe Illustrator中將文本轉換爲輪廓時一樣。

我試過了這個例子,但是這不是我想要的: cairo example

import cairo 

def text_extent(font, font_size, text, *args, **kwargs): 
    surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 0, 0) 
    ctx = cairo.Context(surface) 
    ctx.select_font_face(font, *args, **kwargs) 
    ctx.set_font_size(font_size) 
    return ctx.text_extents(text) 

text='Example' 
font="Sans" 
font_size=55.0 
font_args=[cairo.FONT_SLANT_NORMAL] 
(x_bearing, y_bearing, text_width, text_height, 
x_advance, y_advance) = text_extent(font, font_size, text, *font_args) 
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, int(text_width), int(text_height)) 
ctx = cairo.Context(surface) 
ctx.select_font_face(font, *font_args) 
ctx.set_font_size(font_size) 
ctx.move_to(-x_bearing, -y_bearing) 
ctx.text_path(text) 
ctx.set_source_rgb(0.47, 0.47, 0.47) 
ctx.fill_preserve() 
ctx.set_source_rgb(1, 0, 0) 
ctx.set_line_width(1.5) 
ctx.stroke() 

surface.write_to_png("/tmp/out.png") 
+1

*爲什麼*這個例子沒有做你想做的事? –

+1

因爲我想將文本轉換爲路徑而不僅僅是概述文本我想要路徑數據作爲列表的一部分,以便能夠將其存儲爲svg文件中的路徑 –

+0

@TawfiqabuHalawah如果您找到解決方案,可以請您發佈它嗎? –

回答

0

您可以使用Inkscape中:

import subprocess 
subprocess.call("inkscape in.svg --export-text-to-path --export-plain-svg out.svg", shell = True) 

注意:您必須安裝Inkscape的第一