RUNS IN YOUR BROWSER

Font Inspector — View TTF, OTF, WOFF and WOFF2 Structure

Pick a .ttf, .otf, .woff or .woff2 file up to 50 MB and inspect it online: the container (bare SFNT, WOFF or WOFF2) and outline flavor (TrueType or CFF); every table in the directory with offset, length, stored checksum and a recomputed checksum; unitsPerEm, bounding box, ascender, descender, line gap, weight class, italic angle and glyph count from head, hhea, maxp, OS/2 and post; each name table record decoded by platform, encoding and language, so you can view font metadata such as family, copyright, version and PostScript name; Unicode coverage from cmap subtables in formats 0, 4, 6 and 12; variable font axes and named instances from fvar; and the OS/2 fsType embedding bits. zlib-compressed WOFF tables are decompressed in the browser first. Structural oddities go to a Structural observations list, anything skipped goes to a Not interpreted list, and the whole result can be downloaded as a JSON report.

File types: .ttf, .otf, .woff, .woff2Processing: This browser

or drop a file here

✓ Stays on this deviceMaximum size: 48 MB
HOW TO USE IT

How to use Font Inspector — View TTF, OTF, WOFF and WOFF2 Structure

01

Add your file

Choose or drop a .ttf, .otf, .woff, or .woff2 file. You can paste the contents instead.

02

Let it read the file

The file is read and parsed in this browser — nothing is uploaded.

03

Check the result

Look over what came back, then copy it, download it, or move on.

Common questions

How do I inspect a TTF or OTF file online without installing the font?

Drop the .ttf or .otf file on this page and the font's names, metrics and table directory appear without any installation step. The inspector reads bytes only, so the font never reaches your system font list or the web page itself. Use the panels to browse, or download the JSON report to keep a record.

Is my font file uploaded to a server when I use Font Inspector?

No. The font is parsed by your own browser and its bytes are not sent to any server, stored in browser storage, or turned into an object URL. After the page has loaded, inspecting a font makes no network requests, which makes it suitable for unreleased custom typefaces or fonts supplied by a client.

Can I view font metadata on a Mac, Windows PC or iPhone with this font viewer?

Yes, it runs in current versions of Safari, Chrome, Edge and Firefox on macOS, Windows, iOS and Android, so you can view font metadata anywhere you can pick a file. On a phone, choose the font from the Files app. WOFF files need the browser's built-in DecompressionStream, which older browsers lack.

Why does a TTF file report ERR_UNSUPPORTED_CONTAINER?

Its first four bytes are ttcf, meaning it is a TrueType Collection holding several fonts rather than a single font. Instead of silently reading only the first one, the inspector stops with this code. Split the collection into individual TTF or OTF files with a desktop font editor, then inspect each one.

Why does the WOFF2 file header viewer show no metrics or font names?

WOFF2 compresses all table data with Brotli, and this tool does not decode it, so only the WOFF2 header and table directory are read. You see the flavor, table count, totalSfntSize, total compressed size and each table's original and transform lengths, plus a notice in place of metrics instead of blank or zero values. For names and metrics, inspect the TTF, OTF or WOFF build of the same font.

What is the largest font file Font Inspector can read, and which formats does it accept?

Files up to 50 MB (50,000,000 bytes) with the extensions .ttf, .otf, .woff and .woff2. A larger file is refused with ERR_FILE_TOO_LARGE before anything is parsed. For WOFF, the tables may expand to at most 200 MB in total. Only file input is accepted; pasted text is not.

If I check font fsType embedding bits and they say installable, am I allowed to embed the font?

Not necessarily: fsType is the font file's own declaration about embedding, not a licence and not legal advice. The panel shows the raw value and the spec meaning of each set bit, such as restricted, preview and print, editable, no subsetting or bitmap only. Whether you may embed it in a PDF, app or website depends on the licence you received, which this tool has never seen.

Does a mismatch in the font table checksum checker mean the file was tampered with?

No. A mismatch only means the bytes of a table do not add up to the checksum recorded in the directory. Fonts that were resaved, subset or edited without updating checksums show this routinely. The directory lists both values side by side, and the head table is computed with checksumAdjustment zeroed as the specification requires.

Can this font viewer tell me whether a font file contains malware?

No. It does not scan for malware and never declares a font safe or clean. It reads the file structurally and never renders or installs it, so inspection does not hand the font to your system's font engine. It does flag out-of-bounds offsets, overlapping or truncated tables, but those are structural findings, not a virus verdict.

How can I see which Unicode characters a font covers in its cmap table?

Open the cmap subtables panel: each subtable lists its platform, encoding, format, number of code points and Unicode ranges. Formats 0, 4, 6 and 12 are expanded, and code points mapped to glyph 0 are not counted as covered. Up to 200 ranges show per row; the full list is in the JSON report.

Can I see the axes and named instances of a variable font?

Yes, if the font has an fvar table. The variable font axes viewer lists each axis tag with minimum, default, maximum, flags and name ID, and flags any axis whose default lies outside its range without correcting it. Named instances show user coordinates and normalized coordinates between -1 and 1, computed before any avar mapping.

What is the difference between TrueType and CFF outlines in a TTF or OTF file report?

TrueType outlines live in glyf and loca tables, while CFF outlines live in a CFF or CFF2 table, and the Outline flavor stat tells you which one the file uses. A file starting with 0x00010000 or true is TrueType; OTTO is CFF. Many .otf files actually contain TrueType outlines, and each flavor has its own list of required tables.