无法在mPDF 7中注册自定义字体
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在mPDF 7中注册自定义字体相关的知识,希望对你有一定的参考价值。
我正在使用mPDF 7.0.3。我尝试注册我从Google字体(TTF格式)下载的自定义字体。我基本上复制了the example from the documentation:
$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是使用后备字体生成的。我还在this example之后实现了一个Monolog记录器。它的输出状态有
使用5种字体{“context”:“statistics”} []
即使我故意在fontDir
中传递不存在的路径,也没有错误消息。当我删除default_font
属性时,日志只计算使用的4种字体。
这可能来自哪些想法或我如何进一步调查问题?
答案
我的错!
如this part of the manual中所述,mPDF要求字体名称为小写且不含空格。声明我的字体:
"merriweather" => [
...
],
"robotomono" => [
...
]
解决了这个问题。
在CSS中我仍然将我的字体称为Merriweather和Roboto Mono。
以上是关于无法在mPDF 7中注册自定义字体的主要内容,如果未能解决你的问题,请参考以下文章