mpdf增加字体并进行使用

 

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

 

posted @ 2024-05-17 08:35  赵瑛  阅读(303)  评论(0编辑  收藏  举报

版权所有 © 2022 沅来是澧

如果有程序开发、网站建设等需求的请联系我,QQ:47419233