Putting a PDF brochure on a website is a common small-site job, and converting it to a web page is the easy part. The fonts are harder to reason about. If the PDF carries a font whose license says no embedding, what does the converter do with it? I tried a set of test files to find out, and the answer was not one thing but three.
What the license flag says
A font with an OS/2 table carries a 16-bit license field there, called fsType. The spec page for that table on learn.microsoft.com, which I read on 2026-10-28, puts the usage permission in bits 0–3 (valid values 0, 2, 4 and 8), a no-subsetting flag in bit 8 and a bitmap-only flag in bit 9.
I scanned the fonts on my Mac. Pacifico, Liberation Sans, Helvetica and Noto Serif SC report 0. Palatino and PingFang SC report 4. Arial and Georgia report 8. I found no installed font with 2, 256 or 512, so for those values I made test copies by editing a font file. Everything below is one machine, one run per case, so read the numbers as examples and not as rules.
Case one: the font turns into outlines
I printed a bilingual page to PDF with Chromium 149 using copies of Pacifico and Liberation Sans at each fsType value. Then I opened the PDFs and listed the font objects. With fsType 2 or 512, Chromium did not embed the font at all. The letters were written as Type 3 outlines instead.
I ran those PDFs through ImgIng (https://imging.ai/), a browser tool that is still labeled Beta. It works in a desktop browser and processes the file locally. For the fsType 2 and 512 files it inlined no font. Every glyph came out as a vector path, and the page still showed the Pacifico lettering. Text selection goes through a transparent layer set in plain Arial. I did not check how well that layer lines up with the lettering.
In these test files this was the quiet outcome: no font is embedded, and the page still looks right. I did not record whether the summary panel said anything about it.
Case two: the whole font ends up in the HTML
A font with fsType 256 means "do not subset". Chromium respected that by embedding the entire font in the PDF. The Liberation Sans PDF grew from 85,024 to 502,702 bytes.
The converter then did what it saw. In the HTML, each of the two fonts was inlined as a complete file: Liberation Sans at 211,588 bytes with 2,620 glyphs, and Pacifico at 144,432 bytes with 1,533 glyphs. With the normal subsets I got 94 glyphs for Liberation Sans. So one flag took the Liberation Sans glyph count from 94 to 2,620.
This is the case I would check by hand. A whole font file sitting inside a public web page is a different thing from a subset of the letters you used. If the license is the reason for the flag, that is the moment to read it.
Case three: the font is not usable, so you get a stand-in
This one has nothing to do with fsType. The 4-page sample I used for layout comparisons is a brochure ("Evaluating Wikipedia" by Wiki Education Foundation and others, CC BY-SA 3.0, first four pages) whose body text is set in a Type 1 font, Plantin. The summary panel says the font stream the PDF carries cannot be used directly by a browser. The converted page switched those 509 text elements to Arial, and the summary panel said so, with a note on pages 2 to 4 that the font was not embedded in the PDF and a nearby system font was used.
The other four fonts in that file were TrueType with fsType 4 or 8, and they were inlined as usual. So one page can mix all of this: real fonts, and a stand-in for the one that could not travel.
What I would check before publishing
These are my assumptions from the three cases, not tested rules. First, read the summary panel. It tells me which pages got substituted fonts, which is more useful than any guess about licenses. Second, look at the converted page next to the original PDF at the same zoom. Outlines look right, substitutes do not. Third, if a font in the PDF has the no-subsetting flag, check how big the HTML is and open the license before it goes live.
I did not test every converter, and I have not compared this with pdf2htmlEX. These three things happened in my files, on one machine, once each.
Top comments (0)