Static font glyph SVG export
Select glyph IDs or code points from a supported static TrueType font and export SVGs with complete curve bounds plus a JSON report of names, declared metrics and mapping status.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
A complete outline asset needs curve bounds rather than only font line metrics. Confirm the supported format and selectors, inspect uncovered mappings, then download the complete ZIP.
How to use this tool
- Choose one supported static TTF; its original bytes remain unchanged.
- Enter glyph IDs or Unicode code points and an integer padding. The union of the lists determines exported glyphs.
- Check selected glyphs, uncovered code points and metric scope; download ZIP for every SVG and the complete JSON.
Supported inputs and limits
One-face sfnt0x00010000 static TTF only: glyf quadratic outlines and bounded acyclic XY-affine composites; one input up to16MiB. CFF/CFF2, TTC, WOFF/WOFF2, variable/color/bitmap/SVG-in-font tables, point-aligned composites and cmap2/8/10/14 are Unsupported.
Glyph IDs are nonnegative decimal integers; code points are decimal or U+ followed by1–6 hexadecimal digits, separated by whitespace or commas. The combined lists allow2,000 entries, with no duplicates within either list and no range shorthand. Code points must be Unicode scalars; a missing or glyph0 mapping is explicitly uncovered, without a replacement SVG. Blank omits that list; provide at least one selector.
At most2,000 selected glyphs,200,000 M/L/Q/Z commands,200,000 expanded points,200,000 component visits and composite depth32. Padding is an integer0–4,096 font units. Complete SVG+JSON combined≤32MiB;2,000 SVGs plus report.json are2,001 members, with STORE ZIP≤33,766,552 bytes. Combined inputs can reach another guard first.
Coordinates retain the original glyf design grid and invert the SVG Y axis. Curve bounds are float64-derived with an explicit outward numeric guard, not lossless numerical arithmetic. Advance/lsb are declared hmtx values; USE_MY_METRICS, hinting, shaping, kerning and raster layout are not applied. Font instructions are never executed; this is not a full font-checksum or installed-font integrity audit.
cmap0/4/6/12/13 uses the finite preferred Unicode-record order. Mac lookup supports only the declared Apple maps and language/encoding pairs, without ISO substitution or an unknown-language fallback. Directional, duplicate, multi-scalar or font-variant Arabic/Hebrew ambiguity is atomically Unsupported; valid glyph IDs remain available. Names support post1/2/2.5/3; post4/unknown formats, non-ASCII custom names, reserved indices and XML-illegal controls are Unsupported. TAB/LF/CR names remain intact; SVG writes CR as .
The table previews the first200 glyphs and the first2,000 UTF-16 units of long cells. Copy is an explicit summary when JSON exceeds20,000 characters; ZIP report.json and every SVG, command, declared metric and code-point status remain complete. An empty outline retains emptyOutline, bbox=null and an SVG without a path; no curves are invented.
Worked example
Example input
sample-static-glyf.ttf
Example options
{"params":{"glyphIds":"2 3","codePoints":"U+0041 U+10FFFF","padding":4}}Example output
2 glyphs; U+0041 covered, U+10FFFF uncovered; complete SVGs and JSON ZIP.
When something does not work
Check the actual font format, ID ranges, Unicode scalars, duplicates and integer padding. Use confirmed glyph IDs when a Mac code-point mapping is Unsupported; reduce the full selection or use supported input on a limit. Errors and cancellation publish no partial ZIP; rerun the same corrected original.
Frequently asked questions
Why do curve bounds differ from ascent/descent or hmtx?
Ascent/descent are font-wide declarations; advance/lsb are layout metrics. A glyph tail or accent can extend beyond them. This tool computes SVG viewBox from complete quadratic curves and composite transforms while retaining declared metrics.
Can these SVGs replace font layout?
They are isolated design-grid outline assets, without shaping, kerning, hinting or effective USE_MY_METRICS handling. Use a suitable font engine for text layout and rasterization.
How are ambiguous Mac mappings handled?
Lookup uses Apple tables only within the declared finite profile. Missing direction/font context or an unknown/mismatched language/encoding is atomically Unsupported, without ISO substitution. Correct glyph IDs can still export outlines with names and metrics.