无法在mPDF 7中注册自定义字体

问题描述 投票:0回答:1

我正在使用mPDF 7.0.3。我尝试注册我从Google字体(TTF格式)下载的自定义字体。我基本上复制了the example from the documentation

$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];

$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];

$pdf = new \Mpdf\Mpdf([
  '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种字体。

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

fonts mpdf
1个回答
0
投票

我的错!

this part of the manual中所述,mPDF要求字体名称为小写且不含空格。声明我的字体:

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

解决了这个问题。

在CSS中我仍然将我的字体称为Merriweather和Roboto Mono。

© www.soinside.com 2019 - 2024. All rights reserved.