PerfectVector
By Irene Kim9 min read

FontForge SVG Import: Turn Drawn Shapes Into Glyph Outlines

Import SVG artwork into a FontForge glyph slot, then check contours, baseline, scale, and spacing. Learn what tracing provides and what still needs font design.

On this page

To import an SVG into FontForge, open the intended glyph slot, choose File → Import, change the format to SVG, and select your file. The result is outline geometry in that glyph's editing window. You still need to check its position, size, contours, and spacing before generating a usable font.

That distinction matters when the source is a drawing. Tracing can recover shapes from pixels. It cannot determine the intended baseline, advance width, or spacing rhythm of a typeface. Start with one glyph and finish those checks before importing an alphabet.

Import into a glyph slot, not just an open font window

Create a new FontForge document or open your working font, then double-click the character slot you intend to edit. Import the SVG from File → Import inside that outline window. If the chooser initially lists bitmap formats, switch its format filter to SVG. This is the sequence in FontForge's outline import tutorial.

Check the destination first. If you are adding an original lowercase g, confirm you are editing the intended g slot. A file named g.svg is not a substitute for checking the glyph and its mapping. Save a copy of an existing font before replacing any outlines.

After import, select a point and confirm that you have editable contours. If you only have a picture serving as a tracing reference, you have not reached the same result. FontForge's File menu documentation distinguishes image imports, glyph outlines, and font-file operations.

For this guide, the goal is an ordinary outline glyph. Specialized multilayer or color-font workflows have additional requirements; a browser-ready illustration does not automatically become that kind of font either.

Use original vectors when you have them

If you drew the glyph in a vector editor, prepare that artwork directly. Keep its original contours, make a separate import copy, and simplify unsupported presentation features there. Re-tracing an image of existing vectors can change shapes you already control.

If the source is a raster drawing or generated symbol, convert the image into vector paths with PerfectVector and inspect the SVG. That gives you a starting outline to edit. FontForge remains the place to build the glyph's metrics, spacing, and font behavior.

For a hand-drawn design, choose a clear, high-contrast source. Crop away neighboring characters and paper clutter, but keep the complete ascender or descender. The hand-lettering vectorization guide covers the source preparation stage; image vectorization explained describes what the conversion actually produces.

A traced letter is still artwork geometry

We prepared an original raster lowercase g with one broad counter and a clear descender, then converted it through PerfectVector. The raw SVG contained three closed paths: a near-white canvas background, a black letter silhouette, and a near-white counter shape. It had no embedded images.

The white counter was painted over the black silhouette. It was not already an interior contour of a finished font glyph. Removing the white shape alone would expose solid black underneath. In the import copy, remove the verified background and prepare the counter as a genuine opening before evaluating the glyph's fill.

Prepared raster lowercase g beside actual SVG output with three closed paths and a painted white counter with blue SVG path outlines
Prepared original raster glyph and actual PerfectVector SVG output. The raw file has three paths, including the background and painted counter. No FontForge import or finished font is shown. Blue lines overlay the actual SVG paths for inspection; background outlines are omitted.

The comparison shows the outline evidence we inspected, not a FontForge test. We did not assign a baseline, em size, advance width, or kerning to this output. A clean-looking descender tells you where the drawing extends; it does not tell the font where the baseline belongs.

Prepare explicit contours before adjusting metrics

Keep an untouched SVG and a separate working copy. In the working copy, remove unrelated background shapes, expand strokes when their visible thickness defines the glyph, and resolve masks or clipped effects into the shapes you intend to keep. FontForge imports a subset of SVG, as its import reference explains.

For a letter with a counter, inspect both the outside boundary and the inside boundary. They need to describe the intended filled region. A white overlay may mimic the appearance on a white page without giving the font the right contour structure.

After importing the prepared artwork, check for open ends, accidental overlaps, and self-intersections. Element → Correct Direction sets alternating directions for outer and nested contours, but it can produce unexpected results when splines cross. Resolve those crossings before trusting the command. FontForge documents that limitation in its Element menu reference.

Avoid simplifying by a target node count alone. Preserve the corners, terminals, and curves that define your drawing. The guide to excessive SVG nodes can help diagnose noisy contours, but a font outline also needs typographic judgment at the sizes where it will be read.

Align the baseline before judging the height

Imported artwork can arrive too small, too large, or offset from the intended origin. Select all the glyph's points and move or scale them together. FontForge's import tutorial describes moving the outline into place and using Element → Transform → Transform with uniform scaling.

For the lowercase g, do not align the lowest point to the baseline: that point belongs to the descender. Set the body of the letter relative to your intended baseline and x-height, leaving the descender below it. Compare with neighboring lowercase glyphs in the same design if they already exist.

Use a consistent source coordinate system when preparing more letters. FontForge's tutorial gives a 1,000-unit workflow, while Design With FontForge's import guide explains how an SVG's vertical coordinates relate to ascent and descent. Treat those as coordinated setup instructions, not a rule that every existing SVG must be stretched into a square.

A font with different units per em needs a matching plan. Likewise, tightly cropping each letter to a different-height SVG page can discard the shared reference you need for consistent placement. Establish that reference with one or two glyphs before processing the rest.

Set spacing in context

The letter's visible width and its advance width are different. The advance tells the next character where to begin; the empty space around the outline contributes to the rhythm of a word.

Open the Metrics window from the Window menu and inspect the glyph beside other letters. FontForge's metrics tutorial describes changing the left side bearing by moving the outline and the right side bearing through the advance-width line.

For a first g, compare repeated letters and short combinations with already drawn glyphs, such as gg, ng, and go. Look at the spaces rather than just the outlines. Do not use kerning to compensate for every poorly chosen default side bearing; first establish reasonable spacing for ordinary neighbors, then address exceptional pairs.

A glyph that looks centered on an SVG page can still sit awkwardly in text. Conversely, equal numerical space on both sides is not always the spacing that looks right. Keep the SVG bounds as a geometry reference and judge the font in a line of type.

Validate and generate a test font

Save the editable FontForge project before generating a font file. Save preserves the working source; Generate Fonts creates a font format such as TrueType or OpenType. The checking and generation tutorial explains that separation.

Run Element → Find Problems on the glyphs you have prepared. Review the reported issues instead of accepting every suggested change automatically: FontForge notes that some findings can reflect intentional design choices. Then inspect the glyphs visually again.

Generate a test font and try it in the application where you intend to use it. Check the character mapping, counter, baseline, descender clearance, and spacing at both small and large text sizes. If the font is still a small prototype, keep that test scope clear. Importing one successful outline does not establish that an entire typeface is finished.

FAQ

Why is my SVG the wrong size or position in FontForge? Its source coordinates and page dimensions may not match the font's em and baseline setup. Move and scale the imported outline consistently, then establish a shared coordinate plan before preparing more glyphs.

Can PerfectVector turn a drawing into a complete font? PerfectVector converts raster artwork into vector paths. You still need a font editor to prepare glyph contours, mapping, metrics, spacing, and the generated font file.

Why does the letter's counter fill in? Check whether the apparent opening is a white overlay, whether the inner contour is present, and whether contour directions or crossings need repair. Inspect the prepared glyph's fill rather than relying on how the original SVG looked on a white page.

Should I import all my SVG letters at once? Finish one representative glyph first. Confirm its scale, baseline, contours, and spacing, then apply a consistent preparation method to the remaining letters. Batch import cannot decide those design values for you.

Sources

  1. FontForge outline import tutorial — Glyph-slot import, positioning, uniform scaling, and coordinated source dimensions.
  2. FontForge File menu — Import types, SVG support, and source-versus-font file operations.
  3. FontForge Element menu — Contour direction correction and its limits around crossings.
  4. Design With FontForge: importing glyphs — SVG coordinates, ascent, and descent setup.
  5. FontForge metrics tutorial — Side bearings, advance width, spacing in context, and kerning.
  6. FontForge checking and generation tutorial — Reviewing problems and generating a usable font format.

If your first glyph exists only as pixels, convert the drawing into editable vectors, inspect the counter and outer contour, then finish that one glyph in FontForge. A correctly placed, spaced, and tested outline is a useful starting point for the rest of the font.

More from the blog

Start with a cleaner SVG
that is easier to edit