Menu

What the fsType field in a font means, and how to read it with fontTools
📰

What the fsType field in a font means, and how to read it with fontTools

DEV Community: javascript·yue xing·about 3 hours ago
#DUdwCAlr
#devtojavascript#devto#dev#font#fstype
Reading 0:00
15s threshold

Font tooling keeps mentioning fsType , and it is easy to treat it as a magic number where 0 is fine and anything else is a problem. The spec says something more specific, and a few things in it are easy to misread. So I read the field on fonts installed on my Mac, then on the fonts inside a PDF, and wrote down what each reading means.

fsType is one 16-bit number with three jobs

fsType lives in the OS/2 table of a TrueType or OpenType font. The OpenType spec (the OS/2 page on learn.microsoft.com, read on 2026-10-28) splits the 16 bits into parts. Bits 0 to 3 hold the usage permission. Bit 8 means the font must not be subsetted. Bit 9 means only bitmap embedding is allowed. The rest are reserved.

The permission part is not a set of independent switches. It holds one value, and the valid ones are 0, 2, 4 and 8. Zero is installable embedding, 2 is restricted license embedding, 4 is preview and print embedding, and 8 is editable embedding.…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.