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中有描述。
我有一个 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中有描述。