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 }