如何在yii2中向kartik yii-mpdf添加自定义字体
Posted
技术标签:
【中文标题】如何在yii2中向kartik yii-mpdf添加自定义字体【英文标题】:How to add custom fonts to kartik yii-mpdf in yii2 【发布时间】:2017-07-17 11:29:33 【问题描述】:我知道如何让它在本地环境中工作,我将字体.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
之后?
【问题讨论】:
【参考方案1】:我找到的解决方案:
1) 将.ttf 字体放入/your/path/to/fonts/dir
,添加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
【讨论】:
以上是关于如何在yii2中向kartik yii-mpdf添加自定义字体的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Yii2 中将带有 kartik-Select2 小部件项目的选择保存到 DB?
在 Yii2 Kartik Select2 小部件中,如何对选择事件进行 ajax 调用?