LinuxCommandLibrary

fontforge

Edit and create font files

SYNOPSIS

fontforge [options] [files …]

PARAMETERS

-h, --help
    Display help message and exit

--usage
    Show brief usage summary

--version, -V
    Print version information

--script=<SCRIPTFILE>, -script <SCRIPTFILE>
    Execute commands from script file then exit

--cmd=<COMMAND>, -c <COMMAND>
    Execute single command then exit

--lang=<LANGUAGE>
    Set scripting language (ff, py, py3)

--user=<SCRIPT>, -u <SCRIPT>
    Execute named user script on startup

--with=<EXTDIR>
    Set extensions directory

--library=<LIBDIR>
    Set library directory

--noexec
    Skip executing startup script

--home=<DIR>
    Override HOME directory

-display <DISPLAY>
    X11 display to use

-geometry <GEOMETRY>
    Initial window geometry

DESCRIPTION

FontForge is a free, open-source tool for creating, editing, and converting outline-based fonts in formats like TrueType, OpenType, PostScript Type1, SVG, and more. The fontforge command launches an interactive graphical user interface (GUI) packed with tools for glyph design, kerning, hinting, ligatures, and font validation. Users can draw bezier curves, import/export bitmaps, manage multiple masters for variable fonts, and apply Apple/Google OpenType features.

In batch mode, it executes scripts for automation, such as font conversion, validation, or generation from XML/SVG sources. Scripting supports FontForge's PostScript-like language (ff), Python 2/3, or single commands. It's cross-platform, running on Linux via X11, with extensive documentation and plugins.

Popular among type designers for its power and zero cost, though the GUI has a steep learning curve due to dense toolbars and dialogs. Supports color fonts (COLR/CPAL), bitmap strikes, and CID-keyed fonts. Essential for custom typography in open-source projects.

CAVEATS

Steep learning curve for GUI; custom scripting language (ff) less intuitive than Python; requires X11 on Linux; large memory use for complex fonts.

BATCH MODE

Use -script or -lang=py for non-interactive font processing, e.g., conversion.

SUPPORTED FORMATS

Read/write: TTF, OTF, UFO, SFD, Type1, Type3, CID, SVG, BDF/PCF bitmaps.

HISTORY

Created by George Williams in 2000 as PfaEdit for PostScript editing; renamed FontForge in 2007 for broader support. Williams died in 2019; now community-driven with Skef Iterum as lead maintainer since 2020. Active development focuses on OpenType features and Python integration.

SEE ALSO

mf2pt1(1), fontimage(1), otfinfo(1)

Copied to clipboard