【发布时间】:2019-11-12 04:08:44
【问题描述】:
我想在我的 cakephp 应用程序中为我的 pdf 文档实现两种自定义字体。我使用文档,但默认字体总是绘制。
我试图在 cakepdf 选项字段上实现它。这运行 mpdf 的构造函数,我知道文件的路径是正确的,但没有任何改变
$defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$fontDirs = array_merge($fontDirs, [
$_SERVER['DOCUMENT_ROOT'] . '/webroot/font/Montserrat',
$_SERVER['DOCUMENT_ROOT'] . '/webroot/font/Poppins',
]);
$defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$fontData = $fontData + [
'Montserrat' => [
'R' => 'Montserrat-Regular.ttf'
],
'Poppins' => [
'R' => 'Poppins-Regular.ttf'
]
];
Configure::write('CakePdf', [
'engine' => [
'className' => 'CakePdf.Mpdf',
'options' => [
'fontDir' => $fontDirs,
'fontdata' => $fontData,
'default_font_size' => 20,
'default_font' => 'Montserrat'
]
],
'margin' => [
'bottom' => 15,
'left' => 50,
'right' => 30,
'top' => 45
],
'orientation' => 'portrait',
'download' => true
]);
<style>
.test {
font-family: "Montserrat"
}
</style>
<table cellpadding="5" cellspacing="0" style="width: 100%;">
<tr>
<td>
<span class="test"># test123</span>
</td>
</tr>
文本“test123”始终使用默认字体。我该如何改变这个
【问题讨论】:
-
确保您已启用错误报告并仔细检查字体的完整路径是否符合您的预期。在添加 2 个字体目录后执行
var_dump($fontDirs);并查看其中包含的内容。 -
报告哪个错误?我调试了两个变量 $fontDirs 和 $fontdata 并且变量和路径是正确的
-
ini_set('display_errors','1');ini_set('display_startup_errors','1');error_reporting(E_ALL); -
这是 cakephp 的默认设置。它的激活
-
尝试使用小写的自定义字体名称。