fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward
home/font/compressor

Keep the characters you use. Ship the rest nowhere.

Compress fonts by dropping what you never use: a typeface carries hundreds of glyphs your page never shows. This page opens ten font formats on your device (TTF, OTF, WOFF, WOFF2, EOT, DFONT, SUIT, BIN, Type 42 and SVG), subsets them, strips hinting and trims names, then saves the result in any of the 21 formats: web, desktop, classic Mac, Type 1, Type 3, CIDFont, metrics files, or FontForge and UFO sources, and loads the result back into this page so you can see exactly which characters survived.

text_fieldsSample font: Lobster
where the bytes goopen a font to see its tables
Outlines (glyf / CFF)88%
Layout: GSUB, GPOS, GDEF, kern4%
Hinting: fpgm, prep, cvt, gasp1%
Glyph names (post)3%
Metrics and maps3%
Names, signature, other0%
1174glyphs in the font
828characters mapped
27 KBafter compression
AaNo font yetTTF, OTF, WOFF, WOFF2, EOT, DFONT, SUIT, BIN, T42 or SVG. Drop it on this panel.
Or try Lobster (336-character cut) inside another wrapper. Each is built here, then unwrapped and compressed like your own file:
.ttf.otf.woff.woff2.eot.dfont.suit.bin.t42.svg
1 · characters to keep
FastFastA–Z, a–z, digits, punctuation95 characters in this fontNormalNormalBasic Latin + accents for French, German, Spanish…203 characters in this fontMaximumMaximumWestern + Polish, Czech, Turkish, Baltic…336 characters in this fontUltraUltrano subsetting; tables only828 characters in this font
2 · what else to removeStrip hintingTrueType instructions for crisp pixels on old Windows. Modern screens ignore most of it.Trim the name tableKeep family, style, version and PostScript name; drop licence text and translations.Keep ligatures and kerningOnly kept with Every character; subsetting rebuilds without them.
3 · save as
Samesame as input.woff2Brotli · web.woffzlib · web.ttfTrueType · desktop.otfCFF · desktop
All 21expand_moreType 1, Mac, metrics, sources…
search
.same as input
No format matches.
compressCompress the sample font
resultnothing compressed yet
397 KBbefore
27 KBafter
93.1%saved
209/1174glyphs kept
waitingOpen a font or use the sample; it compresses as soon as it loads.
specimenLobster-Regular-latin1.ttf
Grumpy wizards make toxic brew: café, naïve, €12
Type anything. Characters the subset dropped will fall back to another font.
downloadDownload Lobster-Regular-latin1.ttf · 27 KB
@font-face for this file
@font-face { font-family: 'Lobster'; src: url('Lobster-Regular-latin1.ttf') format('truetype'); font-display: swap; unicode-range: U+0020-007E, U+00A0-00FF, U+2013-2014, U+2018-201A, U+201C-201E, U+2022, U+2026, U+20AC, U+2122;}
~/presets × formats

Twelve files from one font, measured here.

Each cell is a real file built from the font above with your hinting and name settings: four character sets, three formats. The percentage is the saving against the original file. Click a cell to load those settings.

character set
.woff2
.woff
.ttf
asciiFast
6.1 KB−98.5%
7.9 KB−98.0%
12 KB−97.0%
latin1Normal
10 KB−97.4%
14 KB−96.6%
27 KB−93.1%
latinxMaximum
14 KB−96.5%
19 KB−95.2%
49 KB−87.7%
allUltra
38 KB−90.3%
58 KB−85.4%
181 KB−54.5%
FileFormer test · AkrobatOn Akrobat ExtraBold, Fast kept 95 glyphs at 8.4 KB, Normal 176 at 13 KB, Maximum 296 at 17.6 KB.
WOFF2 stays smallestIt starts smallest and ends smallest: 22.9 → 8.4 KB on the ASCII test, so it is the format to serve.
PostScript is the exceptionA .ps font program shrank only 15.8%, because most of it is header and dictionary text. Convert it to OTF instead.
Lossy in one wayCharacters outside the set will not render at all. Accented names, € and curly quotes need Western European or wider.
Builds 12 real files from the current font. Takes about a second.grid_viewBuild all 12
~/21-font-formats

21 font formats, and what happens to each.

The before and after sizes come from FileFormer's own test: Akrobat ExtraBold (485 glyphs) converted to each format with FontForge, then subset to ASCII. Formats without a verified test file show no figures.

formatwhat it ison this pagemeasured, ASCIInote
Desktop7 formats
.
.ttfTrueType, the usual desktop fontopened and saved here70.4 → 11.8 KB (−83.2%)subset with glyph instructions stripped if asked
.otfOpenType with CFF outlinesopened and saved here91.7 → 22.7 KB (−75.3%)CFF rebuilt through opentype.js; hinting goes
.dfontMac datafork suitcaseopened and saved here71.7 → 20.7 KB (−71%)resource fork read here; sfnt resource extracted
.cffbare PostScript outlinessaved here31.1 → 7.7 KB (−75.3%)usually shipped inside OTF
.cidCID-keyed, large character setssaved hereno verified fileCJK; subsetting matters most
.sfdFontForge sourcesaved hereno verified filea working file, not for shipping
.ufoUnified Font Object, a folder of XMLsaved here742.7 → 269.4 KB (−63.7%)type-design source
Web4 formats
.
.woff2WOFF 2.0, Brotli-compressedopened and saved here22.9 → 8.4 KB (−63.2%)decoded with Google’s woff2 in WebAssembly
.woffWOFF 1.0, zlib per tableopened and saved here32.3 → 7.3 KB (−77.4%)tables inflated, subset, repacked
.eotEmbedded OpenType, IE onlyopened and saved here70.5 → 8.4 KB (−88%)header removed; plain font inside
.svgSVG font, XML outlinesopened and saved here250.8 → 55 KB (−78.1%)glyphs subset, paths rounded, XML minified
PostScript and legacy10 formats
.
.pfbType 1, binarysaved here53.7 → 18.3 KB (−65.9%)retired by Adobe in 2023; convert to OTF
.pfaType 1, ASCIIsaved here104.1 → 34 KB (−67.3%)plain-text sibling of PFB
.pfmPrinter Font Metricssaved hereno verified filespacing only, no outlines
.afmAdobe Font Metricssaved hereno verified fileplain-text metrics
.binMacBinary-wrapped fontopened and saved here54.8 → 19 KB (−65.3%)TrueType inside opens here; Type 1 inside does not
.suitclassic Mac suitcaseopened and saved here71.9 → 8.4 KB (−88.3%)MacBinary or bare resource fork; TrueType faces only
.psPostScript font programsaved here140.8 → 118.6 KB (−15.8%)mostly header text; convert instead
.pt3PageMaker Type 3saved here301.8 → 55.1 KB (−81.7%)long obsolete
.t11Type 11 CJKsaved hereno verified fileCID-keyed TrueType for printers
.t42Type 42, TrueType for printersopened and saved here94.8 → 7.7 KB (−91.9%)hex strings joined; cmap rebuilt from /CharStrings if missing