Convert TrueType to PostScript Curves in FontForge

Converting TrueType curves (quadratic) to PostScript curves (cubic) in FontForge is a straightforward process that changes the underlying mathematical representation of your font's outlines. This conversion is mathematically lossless because every quadratic curve can be perfectly represented by a cubic Bézier curve. The process involves opening the font properties, switching the layer's spline type from quadratic to cubic, and re-generating your font in a PostScript-compatible format.

Step 1: Open Your Font and Select the Glyphs

Launch FontForge and open your TrueType font file (.ttf). Once loaded, press Ctrl + A (or Cmd + A on macOS) in the font view window to select every glyph in the font. While FontForge can convert the entire layer globally, selecting all glyphs ensures that any active transformations apply to the full set.

Step 2: Change the Spline Type to Cubic

  1. In the top menu, go to Element and select Font Info (shortcut: Ctrl + Shift + F).
  2. In the sidebar of the Font Info dialog, click on Layers.
  3. Locate the Fore (Foreground) layer in the list. Under the Type column, click the dropdown menu and change the setting from Quadratic to Cubic.
  4. Click OK at the bottom of the window to apply the change.

FontForge will automatically recalculate the control points for all quadratic curves, upgrading them to cubic Bézier curves with distinct on-curve and off-curve control handles.

TrueType fonts typically use an Em size of 2048 units, whereas PostScript (CFF / Type 1) fonts traditionally use 1000 units. To change this:

  1. Return to Element > Font Info.
  2. Select General from the sidebar.
  3. Change the Em Size value to 1000.
  4. Ensure the Scale Outlines checkbox is selected so your glyphs resize proportionately with the Em square.
  5. Click OK.

Step 4: Validate the Geometry

Because changing curve orders and scaling outlines can occasionally introduce minor coordinate rounding issues:

  1. Go to Element > Simplify > Simplify to merge unnecessary collinear points.
  2. Select Element > Add Extrema to ensure all curve peaks and valleys have explicit on-curve points, which is a standard requirement for PostScript fonts.
  3. Select Element > Correct Direction to ensure all outline contours follow the PostScript winding rule (clockwise for outer paths, counter-clockwise for inner cutouts).

Step 5: Export as a PostScript-Based Font

  1. Go to File > Generate Fonts.
  2. In the format dropdown menu, select OpenType (CFF) (.otf) or PostScript Type 1.
  3. Choose a destination directory, name your file, and click Generate.