我正在使用 mPDF 7.x 版本并尝试遵循此文档:https://mpdf.github.io/fonts-languages/fonts-in-mpdf-7-x.html
我就是无法让它发挥作用。没有错误,但字体仍然是默认的 mPDF 字体。
我还尝试用另一种方式来回答这些问题:
如何使用 mPDF 生成 PDF 并向其添加自定义 Google 字体?
php mPDF,无法设置字体系列和字体大小
向 mPDF 添加字体
但我猜它们不起作用,因为它们可能只适用于 7.X 之前的版本...所以这是我尝试使用 7.x 文档信息的最新尝试。
这是我的 php 文件:
require_once __DIR__ . '/vendor/autoload.php';
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf(['tempDir' => __DIR__ . '/upload'],
['fontdata' => $fontData + [
'BentonSans' => [
'R' => 'BentonSans.ttf',
'I' => 'BentonSans-Bold.ttf',
]
],
'default_font' => 'BentonSans'
]);
$url = rawurldecode($_REQUEST['url']);
$html = file_get_contents($url);
$stylesheet = file_get_contents('style.css');
$mpdf->setBasePath($url);
$mpdf->AddFontDirectory('fonts');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html);
$mpdf->Output('filename.pdf','I');
还有我的CSS:
body {
font-family: 'BentonSans';
font-size: 14px;
font-style: normal;
font-variant: normal;
font-weight: normal;
line-height: 20px;
}
我的自定义字体存储在“fonts”中,它与 php 文件位于同一文件夹中。
这是真正有效的解决方案,如docs:
“在 fontdata 配置变量中定义字体详细信息 - 字体名称必须小写”。
So BentonSans
必须改为bentonsans
.
代码是:
$defaultConfig = (new \Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new \Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf(
[
'tempDir' => __DIR__ . '/upload',
'fontDir' => array_merge($fontDirs, [
__DIR__ . '/fonts'
]),
'fontdata' => $fontData + [
'bentonsans' => [
'R' => 'BentonSans.ttf',
'I' => 'BentonSans-Bold.ttf',
],
],
'default_font' => 'bentonsans'
]
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)