在 mPDF 7 中注册自定义字体时出现问题



我正在使用mPDF 7.0.3。我尝试注册从谷歌字体(TTF 格式(下载的自定义字体。我基本上从文档中复制了示例:

$defaultConfig = (new MpdfConfigConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new MpdfConfigFontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$pdf = new MpdfMpdf([
'fontDir' =>  array_merge($fontDirs, [
__DIR__ . '/files/theme/fonts/Merriweather',
__DIR__ . '/files/theme/fonts/Roboto',
]),
'font_data' => $fontData + [
"Merriweather" => [
'L'  => 'Merriweather-Light.ttf',
'R'  => 'Merriweather-Regular.ttf',
'RI' => 'Merriweather-Italic.ttf',
'B'  => 'Merriweather-Bold.ttf',
'useOTL' => 0xFF,
'useKashida' => 75,
],
"Roboto Mono" => [
'L' => 'Roboto-Light.ttf',
'R' => 'Roboto-Regular.ttf',
'M' => 'Roboto-Medium.ttf',
'useOTL' => 0xFF,
'useKashida' => 75,
]
],
'default_font' => 'Merriweather'
]);

不过,我的 PDF 是使用后备字体生成的。在这个例子之后,我还实现了一个 Monolog 记录器。它的输出状态是有

使用了 5 种字体 {"上下文":"统计"} []

即使我故意在fontDir中传递不存在的路径,也没有错误消息。当我删除default_font属性时,日志仅计算使用的 4 种字体。

任何想法可能来自哪里或我如何进一步调查问题?

我的坏!

如手册的这一部分所述,mPDF 希望字体名称为小写且没有空格。像这样声明我的字体:

"merriweather" => [
...
],
"robotomono" => [
...
]

解决了问题。

在CSS中,我仍然将我的字体称为MerriweatherRoboto Mono

最新更新