在 mpdf 8 codeigniter 中插入和修改新字体系列

Insert and modify new font family in mpdf 8 codeigniter

我使用 mpdf 以 pdf 格式显示照片用户。我试图将新字体 Poppins 插入到 mpdf 中。我尝试使用 google 中的 import 字体,例如 @import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');,然后我想更改字体粗细,但结果是一样的。

这是代码

<html>
   <head>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');
    </style>
   </head>
   <body style="background-image: url('<?= base_url(); ?>assets/image.png');width:50%;height:10%;background-size:no-repeat;background-size:cover;text-align:center;">
      <h2 style="margin-top:550px;width:76%;text-align:center;position:absolute;z-index:200;font-family: 'Poppins', sans-serif;font-weight: 900;"><?= "name"; ?></h2>
   </body>
</html>

您知道如何正确更改字体粗细或添加字体系列吗?

因为 mpdf documentation 你需要在你的控制器中设置它,这里是我用于 RockSalt 和 PT Caption 字体的片段。确保将 *.ttf 文件放入相应的文件夹中,在我的例子中:/assets/_pdf/_fonts

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

$mpdf = new \Mpdf\Mpdf([
    'fontDir' => array_merge($fontDirs, [
        $_SERVER['DOCUMENT_ROOT'] . '/assets/_pdf/_fonts',
    ]),
    'fontdata' => $fontData + [
        'rocksalt' => [
            'R' => 'rocksalt.ttf',
        ],
        'ptsanscaption' => [
            'R' => 'ptsanscaption.ttf',
        ]
    ],
    'default_font' => 'ptsanscaption'
]);

$html=$this->load->view('my_mpdf','',true);
$mpdf->WriteHTML($html);

注意:在我的视图文件 my_pdf 中(我在其中构建 html 我想要输出)以便在浏览器中看到“预览”(我正在使用用于构建 pdf 和用于预览的相同视图文件),我正在使用

应用字体
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans+Caption" />
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Rock+Salt" />

和css照常

.title{
        font-family: 'Rock Salt', rocksalt;
}

编辑: 要更改字体粗细,请遵循相同的规则。只需将 Poppins-Regular.ttf 和 Poppins-Bold.ttf(或任何其他)复制到您的字体文件夹,然后将您想要的字体变体添加到字体数组中:

$mpdf = new \Mpdf\Mpdf([
    'fontDir' => array_merge($fontDirs, [
        $_SERVER['DOCUMENT_ROOT'] . '/assets/_pdf/_fonts',
    ]),
    'fontdata' => $fontData + [
        'rocksalt' => [
            'R' => 'rocksalt.ttf',
        ],
        'ptsanscaption' => [
            'R' => 'ptsanscaption.ttf',
        ],
        'poppins' => [
            'B' => 'Poppins-Bold.ttf',
        ],
        'poppins' => [
            'R' => 'Poppins-Regular.ttf',
        ]
    ],
    'default_font' => 'ptsanscaption'
]);

然后创建一个 css 规则:

.my_style{
    font-family: 'Poppins'; 
    color:red; 
    font-size: 16px;
}

并将其应用于 html:

<div class="my_style">
    <b>bold text</b>
    regular text
</div>