How to convert text to paths?
Asked Answered
S

1

10

I am trying to convert text to curves and paths for example:

Text = 'Welcome to python'

I am trying to convert this text to path. Also I am trying to get this path information as list of points.

I want to store text as paths in an SVG file.

Like when you convert text to outlines inside adobe illustrator for example.

I tried this example but this is not what I want: 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")
Substratum answered 5/8, 2013 at 12:15 Comment(3)
Why does that example not do what you want?Tahr
because i want to convert text to path not just outlining the text i want the path data as list of point to be able to store it as path in svg fileSubstratum
@TawfiqabuHalawah if you find a solution, can you please post it?Squatter
P
5

You can use inkscape:

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

note: you'll have to install inkscape first

Petrillo answered 3/10, 2015 at 17:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.