Font to SVG: Real Glyph Outlines Out of a Font File

Drop a .ttf, .otf or .ttc and look inside it: every glyph is a set of contours, and this page reads them out of the file as SVG path data. Copy one path, download one glyph, or turn a whole string into outlines — all in the tab, with the font file never leaving your machine.

TTF · OTF · TTCQuadratic + cubicPer glyph or stringNo upload

1. Open a font

parsed in this tab
Drop a .ttf, .otf or .ttc file here, or choose one

2. Pick a glyph

—
type a character to jump to its glyph
Load a font to list its glyphs — the grid draws each outline from the file, not from a system font.

3. Export a string

one SVG, outlined
Text
Sizepx

Glyph detail

—
No glyph selected
Coordinates are in font units with the Y axis already flipped, so the path drops straight into the viewBox shown above it.

A font is a database of shapes, not a set of letters: each glyph is stored as one or more closed contours in font units, and the characters you type only point at those shapes through a lookup table. Extracting a glyph to SVG therefore means three reads — character to glyph id, glyph id to outline, outline to path — and nothing is redrawn, traced or approximated on the way out.

What is actually inside a glyph

Every glyph carries a bounding box and, for most glyphs, a list of contours. A contour is a sequence of points, each flagged as on-curve or off-curve; the sequence closes back on itself and becomes a filled region. Letterforms with counters — o, e, B, 8 — have two or three contours, and the inner ones are wound in the opposite direction so the hole appears when the shape is filled with the nonzero rule. Nothing in the file says "this is a hole"; the winding does the work, which is why a path that loses its direction suddenly fills solid.

Besides the outline, a glyph carries an advance width: the distance the pen moves before the next glyph starts. That number is not in the outline, and it is the one people forget when they copy a path into a drawing tool and wonder why the letters collide.

A font file opened in the tool: glyph grid on the left, one selected glyph on the right with its contour count, advance width, bounding box and the extracted SVG path data
One glyph, three readings: the grid shows the outline, the panel shows the metrics, and the box shows the path data that leaves the tool. · swipe to see it all

TrueType glyf versus CFF charstrings

Two outline formats dominate, and they differ in a way you can see in the exported path:

 TrueType (glyf)PostScript (CFF)
File.ttf, .ttc, Apple system faces.otf, most design-tool exports, CFF-based CJK fonts
CurvesQuadratic, one control point → QCubic, two control points → C
Composite glyphsReferences to other glyphs plus a 2×2 transform (accents, ligatures)Usually drawn outright; a few legacy fonts use seac
PrecisionInteger font unitsFractional, so circles can be smoother at the same em size

This tool decompresses composites before writing the path, so an é comes out as one flat outline rather than a reference the receiving application has to resolve. It also means the exported path has no dependency on the rest of the font.

One file, many faces

A .ttc or .otc is a collection: several complete fonts sharing one set of tables, which is how an operating system ships Regular, Bold and Light of a CJK family without tripling the disk cost. When you open one, the face picker lists what is inside — for example Songti SC Light, Songti SC Regular, Songti SC Black — and switching re-reads only the table directory, so it is instant even for a 60 MB file.

Two faces of the same family often share glyph outlines and differ only in metrics, so do not be surprised when two styles look identical at one size and diverge at another.

Per-glyph export or a whole string

Both are on this page because they solve different problems. The glyph panel gives you one character with its metrics and a viewBox computed from its own bounding box — the right shape for an icon set, a sprite sheet or a single letter in a logo where you will position it yourself. The string export lays out several characters with the font's own advance widths and kerning and writes one SVG at the size you ask for — the right shape for a wordmark or a label that has to read correctly.

If you need typographic controls — tracking, line height, alignment, colour — that is the other half of this pair: Text to SVG sets a paragraph rather than inspecting a file.

Metrics worth carrying with the outline

What you may do with an extracted outline

Outlines do not become licence-free when they leave the file. In most jurisdictions the glyph shapes are protected as software, and the font's own licence decides whether the outline may be embedded in a document, used in a logo, sold as part of a product, or redistributed at all. Desktop licences commonly allow embedding in a PDF or an image but not in an app or a template; open licences such as the SIL Open Font License allow far more, sometimes with a rename requirement. Extracting the path is a technical operation, not a legal one — read the licence before the artwork ships.

Checking the result

Paste the exported path into a drawing tool and compare the counter shapes against the original; if a letter looks solid, the winding order was lost on the way. The SVG Validator catches the structural faults (missing namespace, dangling references), and SVG Crop, Flip & Rotate trims the margin once the glyph sits where you want it. To embed the finished file in a page or a component, SVG to Code turns it into Base64, a data URI, JSX or a Vue template.

Frequently asked questions

Is the font file uploaded to a server?

No. The file is read with FileReader, parsed by a small sfnt reader inside the page and never leaves the tab. There is no upload endpoint and no external request — the tool still works with the network disconnected.

Why do some glyphs show an empty box?

Either the glyph genuinely has no outline (space, a joiner, a zero-width control) or the character is not mapped in the font's cmap table. A font can contain a glyph no character points at, and it can point a character at a glyph with no contours; both show up as empty here instead of being invented.

Why are some curves cubic and others quadratic?

The outline format follows the font. TrueType stores quadratic curves in a glyf table, so the path uses Q; OpenType with PostScript outlines stores cubic Type 2 charstrings in a CFF table, so the path uses C. Both are exact — SVG supports both, and nothing is approximated.

Can I export a whole font as SVG?

Not as one file worth shipping: a CJK face holds 20,000 to 60,000 glyphs and the path data runs to tens of megabytes, which no browser renders comfortably. Export the characters you actually need — a string export covers a wordmark in one go.

Am I allowed to use the extracted outlines?

Extracting an outline does not change its licence: glyph shapes are protected as software in most jurisdictions, and the font's licence decides whether an outline may be embedded, sold or used in a logo. Check it, especially for fonts bundled with an operating system or a design tool.

Related SVG workflows

More free SVG tools