在mpdf 8 codeigniter中插入和修改新的字体系列 [英] Insert and modify new font family in mpdf 8 codeigniter

查看:53
本文介绍了在mpdf 8 codeigniter中插入和修改新的字体系列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用mpdf在pdf中显示照片用户.我尝试将新字体 Poppins 插入mpdf.我尝试从 @import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');之类的Google字体使用 import ,那么我想更改字体粗细,但是结果是相同的.

I've using mpdf to show photo user in pdf. I've tried to insert new font Poppins to mpdf. I have tried using import from google fonts like @import url('https://fonts.googleapis.com/css2?family=Poppins&display=swap');, then I want to change font weight, but the result is same.

这是代码

<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>

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

Do you know how to change font weight or add font family correctly ?

推荐答案

,如 mpdf文档,您需要在控制器中进行设置,这是我用于RockSalt和PT Caption字体的代码段.在我的情况下,请确保将* .ttf文件放入相应的文件夹中:/assets/_pdf/_fonts

as by mpdf documentation you need to set this up in your controller, here is the snippet I used for RockSalt and PT Caption fonts. Make sure to place the *.ttf files into the corresponding folder, in my case: /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和进行预览),我正在使用

note: in my view file my_pdf (where I build the html I want to output) in order to see a "pre-view" in the browser (I'm using the same view file for building the pdf and for the preview), I'm applying the fonts using

<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(或其他任何文件)复制到字体的文件夹中,然后将所需的字体变体添加到fonts数组中即可:

edit: In order to change your font-weights, you follow the same rules. Just copy Poppins-Regular.ttf and Poppins-Bold.ttf (or any other) to you font's folder and add the font variant you wish to the fonts array:

$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规则:

then create a css rule:

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

并将其应用到html中:

and apply it in the html:

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

这篇关于在mpdf 8 codeigniter中插入和修改新的字体系列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆