如何在yii2中向kartik yii-mpdf添加自定义字体

时间:2017-07-17 11:29:33

标签: php yii2 mpdf kartik-v

我知道如何让它在本地环境中运行,我将字体.ttf添加到/vendor/mpdf/mpdf/ttfonts,然后添加

$this->fontdata = array(
"calibri" => array(
'R' => 'calibri.ttf',
'B' => 'calibrib.ttf',
)
...

/vendor/mpdf/config-fonts.php

所以现在我可以在我的pdf中使用Calibri字体了,但我应该在composer update之后在本地和.hidden {display: none} 之间正确使用它?

1 个答案:

答案 0 :(得分:0)

我发现的解决方案:

1)在/your/path/to/fonts/dir中添加.ttf字体,添加custom_config.php此内容:

$this->fontdata["calibri"] = [
    'R' => 'calibri.ttf',
    'B' => 'calibrib.ttf',
];

2)在common / configs中使用自定义字体设置路径并使用自定义配置文件

'mpdfCustomFontsPath' => /your/path/to/custom_config.php,
'mpdfCustomFonts' => /your/path/to/fonts/dir,

3)在创建kartik / Pdf实例之前,代码中的某些内容执行此操作:

$customFontsConfig = Yii::$app->params['mpdfCustomFontsPath'];
$customFonts = Yii::$app->params['mpdfCustomFonts'];
define("_MPDF_SYSTEM_TTFONTS_CONFIG", $customFontsConfig);
define("_MPDF_SYSTEM_TTFONTS", $customFonts);

这样可行,因为mpdf会在处理html到pdf时检查_MPDF_SYSTEM_TTFONTS_CONFIG_MPDF_SYSTEM_TTFONTS