首页 > 其他分享 >mpdf增加字体并进行使用

mpdf增加字体并进行使用

时间:2024-05-17 09:01:16浏览次数:28  
标签:mpdf fonts simkai fangzhenweibei 字体 使用 增加 ttf

 

1、先将字体复制到目录:\vendor\mpdf\mpdf\ttfonts

2、再修改文件\vendor\mpdf\mpdf\src\Config\FontVariables.php,对照已经添加的simsun,simkai,simhei,fangzhenweibei,fangzhenheiti等字体进行增加即可。

3、再在需要设置字体的文字加上font-family:fangzhenweibei;样式即可。

 

 

附FontVariables.php文件代码:

  1 <?php
  2 
  3 namespace Mpdf\Config;
  4 
  5 class FontVariables
  6 {
  7 
  8     private $defaults;
  9 
 10     public function __construct()
 11     {
 12         $this->defaults = [
 13 
 14             //指定要使用的字体度量:
 15             //-'winTypo使用OS/2表中的sTypoAscender等,通常建议使用-BUT
 16             //-“win”使用OS/2中的WinAscent等,inpractice似乎在Windows环境中更常用
 17             //-'mac'使用hhea表中的Ascender等,并在mac/OSX环境中使用
 18 
 19             'fontDescriptor' => 'win',
 20 
 21             //对于自定义字体数据文件夹,请设置配置项“fontDir”。它也可以是目录阵列,
 22             //然后将返回第一个找到的文件
 23             //可选地设置字体(在“fontdata”中定义的名称)以用于缺少的字符
 24             //使用useSubstitutions时。使用覆盖范围广的字体-dejavusansconsted是一个好的开始
 25             //只能使用子集(否则将添加非常大的文件)
 26             //可以指定多个字体,但每个字体都会增加脚本的处理时间
 27 
 28             'backupSubsFont' => ['dejavusanscondensed', 'freesans', 'sun-exta'],
 29 
 30             //可选地设置用于CJK字符的字体(名称在“fontdata”中定义如下)
 31             //使用useSubstitutions时,在平面2 Unicode(>U+20000)中。
 32             //如果可用,请使用类似hannomb或sun-extb的字体
 33             //只能使用子集(否则将添加非常大的文件)
 34 
 35             'backupSIPFont' => 'sun-extb',
 36 
 37             /*
 38                 此数组定义CSS或HTML字体系列的翻译
 39                 到mPDF中使用的内部字体系列名称。
 40                 无论安装了何种字体,都可以包含任意数量的字体。
 41                 默认情况下,mPDF将采用CSS/HTML字体系列并删除空格
 42                 更改为小写,例如“Times New Roman”将被识别为
 43                 “时间新罗马”
 44                 您只需要定义其他翻译。
 45                 您也可以使用它来定义特定的替换,例如。
 46                 “helvetica”=>“arial”
 47                 设置通用替换(即无衬线或衬线字体)
 48                 通过在下面的“sans_fonts”中包含字体系列
 49              */
 50             'fonttrans' => [
 51                 'times' => 'timesnewroman',
 52                 'courier' => 'couriernew',
 53                 'trebuchet' => 'trebuchetms',
 54                 'comic' => 'comicsansms',
 55                 'franklin' => 'franklingothicbook',
 56                 'ocr-b' => 'ocrb',
 57                 'ocr-b10bt' => 'ocrb',
 58                 'damase' => 'mph2bdamase',
 59             ],
 60 
 61             /*
 62                 此数组列出TrueType.ttf或.otf字体文件的文件名
 63                 (内部mPDF)字体系列名称的每个变体。
 64                 ['R']=常规(普通),其他为粗体、斜体和粗体斜体
 65                 每个条目必须包含一个['R']条目,但其他条目是可选的。
 66                 仅此处输入的字体(文件)可用于mPDF。
 67                 将首选默认值放在首位
 68                 如果在以下任何文件中找不到命名字体,将使用此选项
 69               'sans_fonts', 'serif_fonts' or 'mono_fonts'
 70 
 71               ['sip-ext'] = 'sun-extb', name a related font file containing SIP characters
 72               ['useOTL'] => 0xFF,    Enable use of OTL features.
 73               ['useKashida'] => 75,    Enable use of kashida for text justification in Arabic text
 74 
 75                 如果引用了.ttc TrueType集合文件,则字体编号
 76                 在集合中。集合中的字体已编号
 77                 从1开始,如.ttc文件中所示,例如。
 78               "cambria" => array(
 79                     'R' => "cambria.ttc",
 80                     'B' => "cambriab.ttf",
 81                     'I' => "cambriai.ttf",
 82                     'BI' => "cambriaz.ttf",
 83                     'TTCfontID' => array(
 84                         'R' => 1,
 85                     ),
 86                 ),
 87                 "cambriamath" => array(
 88                     'R' => "cambria.ttc",
 89                     'TTCfontID' => array(
 90                         'R' => 2,
 91                     ),
 92                 ),
 93              */
 94 
 95             'fontdata' => [
 96                 "dejavusanscondensed" => [
 97                     'R' => "DejaVuSansCondensed.ttf",
 98                     'B' => "DejaVuSansCondensed-Bold.ttf",
 99                     'I' => "DejaVuSansCondensed-Oblique.ttf",
100                     'BI' => "DejaVuSansCondensed-BoldOblique.ttf",
101                     'useOTL' => 0xFF,
102                     'useKashida' => 75,
103                 ],
104                 "simsun" => [
105                     'R' => "simsun.ttf",
106 //
107                 ],
108                 "simkai" => [
109                     'R' => "simkai.ttf",
110                 ],
111                 "simhei" => [
112                     'R' => "simhei.ttf",
113                 ],
114                 "fangzhenweibei" => [
115                     'R' => "fangzhenweibei.ttf",
116                 ],
117                 "fangzhenheiti" => [
118                     'R' => "fangzhenheiti.ttf",
119                 ],
120             ],
121             //如果字体包含SIP或SMP Unicode平面中的字符,请将其添加到此阵列
122             ////但你不需要它们。这允许使用更有效的子设置形式。
123             'BMPonly' => [
124                 "simsun",
125                 "simkai",
126                 "simhei",
127                 "fangzhenweibei",
128                 "fangzhenheiti",
129             ],
130 
131             //接下来的3个阵列做两件事:
132             // 1. 如果HTML/CSS中引用的字体对mPDF不可用,这些数组将确定替换了衬线/无衬线或单空格字体
133             // 2. 每个数组中的第一个字体将是在上述情况下替换的字体(否则,顺序无关紧要)
134             //使用mPDF字体系列名称,即小写和无空格(在$fonttrans中进行任何翻译后)
135             //始终包含“sans-serif”、“serif”和“monospace”等。
136 
137             'sans_fonts' => ['simsun','simkai','simhei','fangzhenweibei','fangzhenheiti'],
138 
139             'serif_fonts' => ['simsun','simkai','simhei','fangzhenweibei','fangzhenheiti'],
140 
141             'mono_fonts' => ['simsun','simkai','simhei','fangzhenweibei','fangzhenheiti'],
142         ];
143     }
144 
145     public function getDefaults()
146     {
147         return $this->defaults;
148     }
149 
150 }
View Code

 

标签:mpdf,fonts,simkai,fangzhenweibei,字体,使用,增加,ttf
From: https://www.cnblogs.com/zhaoying/p/18197109

相关文章

  • lightdb秒级增加列和删除列(not null带默认值)
    对数据量过亿的大表而言,dba最头疼的是随着业务变化增加带默认值的字段,以及修改字段的数据类型,在实现不好的数据库中,动不动执行半天,中途失败的话,还会卡半天。这在lightdb中是不会发生的。如下所示:lightdb@oradb=#createtablet(idint,vvarchar2(100));CREATETABLEligh......
  • matplotlib中文乱码(linux中没有中文字体)
    在docker或linux中一劳永逸解决matplotlib中文显示问题安装mplfonts的安装方法是pip:$pipinstall-Umplfonts使用安装好mplfonts之后,需要有一个初始化的配置过程在终端执行$mplfontsinit即可。测试importmatplotlib.pyplotaspltfrommplfontsimportuse_font......
  • oracle rac 增加asm盘
    扫描新增设备echo"---">/sys/class/scsi_host/host0/scanecho"---">/sys/class/scsi_host/host1/scanecho"---">/sys/class/scsi_host/host2/scanecho"---">/sys/class/scsi_host/host3/scanecho"-......
  • .net DataGirdView 通过列索引修改单元格字体
    场景是这样、我需要DataGirdView某几列数量大于0字体就变成蓝色,某几列超过标准值字体就变成红色具体列名属性voidInitCols(){varcol=_DataGridView.BuildCol<DataGridViewTextBoxColumn>(dgvDetail,"OrderNo","工单号");col.Width=125;......
  • vue+element-ui在表格中计算两数差值并让差值>20的字体显示为红色
    <el-table-columnprop="differential"label="差量"class-name="small-paddingfixed-width"><templateslot-scope="scope"><span:c......
  • linux增加环境变量示例
    首先,通过 vim~/.bashrc 命令进入我这个用户的.bashrc文件内 然后在这个文件末尾添加环境变量,比如下面红框中的内容表示添加了路径/home/nfs_new/wangpeng/VSCode-linux-x64/bin为环境变量,实际上这里是把vscode启动命令添加作为环境变量了。其中, $PATH 表示之前所有的环......
  • 为 jsencrypt 增加私钥加密公钥解密的方法逻辑
    首先声明,使用RSA非对称加密,正常的使用情景是公钥加密、私钥解密。因为正常使用情景下,公钥是公开的,如果将私钥加密的数据发出去,使用公钥解密,其实理论上并没有起到加密的作用。私钥加密、公钥解密的使用场景是在于防篡改,确定私钥发来的数据是正确的。其实某种程度来说,确实就没......
  • 小米红米手机应用APP字体太小
    小米红米手机应用APP字体太小 调整了手机显示大小,只能解决一点点,还是有点小,比如B站、微博。调整了系统字体大小,B站、微博又不受系统字体大小控制。 只能通过修改最小宽度来解决。1.打开开发者选项:设置→我的设备→全部参数与信息→连续点击"OS版本”,直到显示已进入开发者......
  • 电脑增加硬盘后DP线显示器没信号问题
    最近遇到一个项目,电脑硬盘空间不够,客户需要增加一个4T机械硬盘。可增加后显示器不亮了。拔掉机械硬盘后又恢复正常。 我到现场后测试确实是这样。更换机械硬盘的电源线和数据线也一样。并且电脑实际上是启动了的,就是没有显示输出。 实在是找不到原因,只能说换个高清线试试......
  • FastAdmin动态增加FieldList问题
    最终效果出现的问题1.FastAdmin1.5版本功能正常,移植到1.2版本导致异常。解决办法:更新require-form.js为1.5版本2.js动态渲染FieldList,点击新增阶梯后会导致上面已有的FieldList点击追加会出现多行数据。如图解决办法:新增完毕只渲染新增的FieldList......