Font substitution v7+
(mPDF ≥ 7.0)
If a font or default font is declared in HTML or CSS, the font that is actually set is determined by:
- Standard use
-
If called in HTML/CSS the font-family name is converted to an mPDF font-family name (see Font names).
The font requested (including style) is checked to see if it is available to mPDF: set by the array
$available_unifonts
:- If the font[style] exists - selected e.g.
trebuchetms['B']
- If the font[nostyle] exists - selected e.g.
trebuchetms['R']
- Looks up the font-family in the three arrays
sans_fonts, serif_fonts,
andmono_fonts
defined in mPDF $config, in this case looking for ‘trebuchetms
’. If found, substitutes a font of similar type (sans-serif, serif, or mono) - the first font in thesans_fonts, serif_fonts,
ormono_fonts
arrays is used. - If no font has yet been selected, the first font in the array
$available_unifonts
* is selected
* The array
$available_unifonts
is initially derived from$this->fontdata
in configuration key. (trebuchetms['B']
will be converted to ‘trebuchetmsB')
- If the font[style] exists - selected e.g.
- Core fonts
-
If core fonts only are specified by using
$mpdf = new \Mpdf\Mpdf(['mode' => 'c'])
, then all font requests will be substituted by Arial/Helvetica, Times or Courier i.e. the core PDF fonts. mPDF determines whether the requested font is a sans-serif, serif or monospace font (as above), and substitutes accordingly. - Character (font) substitution
-
If some circumstances, individual characters are replaced by glyphs from another font - see character (font) substitution.