Mpdf - 如何在字体系列不可用时禁用后备字体

Mpdf - how to disable a fallback font when font-family is not available

我有一个 mPDF 实例,我在其中用一个空数组覆盖了字体目录和字体数据。

我想要实现的是,当我添加 HTML 时,它有一个未在我的字体数组中配置的字体系列,抛出一个错误。现在它会自动回退到手动添加的字体。

mPDF实例化

$config = [
    'mode' => 'utf-8',
    'format' => 'A4',
    'author' => 'John Doe',
    'creator' => 'John',
    'default_font_size' => 12,
    'default_font' => '',
    'margin_left' => 0,
    'margin_right' => 0,
    'margin_top' => 0,
    'margin_bottom' => 0,
    'margin_header' => 0,
    'margin_footer' => 0,
    'orientation' => 'P',
    'fontDir' => [], // Don't use fallback font dir.
    'fontdata' => [], // Don't use fallback fontdata


$mpdf = new Mpdf($config);

手动添加Roboto

$config['fontDir'] = array_merge($config['fontDir'], ['path/to/my/custom/roboto/font']
$config['fontdata'] = array_merge(config['fontdata'], [
    'roboto' => [
      'R' => 'Roboto-Regular.ttf',
     ],
];

想要的结果

我遇到的问题是,当我执行以下操作时:

$mpdf->WriteHTML('<body style="font-family: Lato">Hello world!</body>');

mPDf 自动使用我手动添加的 Roboto 作为后备字体。但我很想知道是否有一种方法可以让 mPDF 抛出一个错误,其中指出字体 Lato 未在其字体数据中配置。

真心希望大家帮帮我!

亲切的问候。

目前 mPDF 无法做到这一点 – 它总是 select 浏览器会做的合适的替换字体。

select替换的过程在the documentation中有描述。