我正在尝试使用德语单词“möchte”生成PDF (字母ö是这里的问题)..
使用我在/ttfonts
文件夹中添加的字体(Open Sans)并将其设置为config_fonts.php
..
"open_sans" => array(
'B' => "OpenSans-Bold.ttf",
'BI' => "OpenSans-BoldItalic.ttf",
'EB' => "OpenSans-ExtraBold.ttf",
'EBI' => "OpenSans-ExtraBoldItalic.ttf",
'I' => "OpenSans-Italic.ttf",
'L' => "OpenSans-Light.ttf",
'LI' => "OpenSans-LightItalic.ttf",
'R' => "OpenSans-Regular.ttf",
'SB' => "OpenSans-Semibold.ttf",
'SBI' => "OpenSans-SemiboldItalic.ttf",
'useOTL' => 0xFF,
'useKashida' => 75,
)
我还阅读https://mpdf.github.io/fonts-languages/fonts-in-mpdf-6-x.html并尝试修改config_lang2fonts.php
..我甚至将其设置为open_sans
$unifont = "open_sans";
return array($coreSuitable ,$unifont);
PS:我下载的字体文件Open Sans已经没有子集了。
PHP
$mpdf = new mPDF('','A4','','open_sans' , 30 , 12 , 12 , 12 , 10 , 10);
Mark Up
@font-face{
font-family:open_sans;
src: url('mypath/mpdf60/ttfonts/OpenSans-Regular.ttf');
}
我尝试使用mPDF的默认字体,如 dejavusans ,它完美无缺。但我需要的是Open Sans。我错过了mPDF中的配置还是什么?有什么问题?
答案 0 :(得分:0)
您看到常规o
后跟未知字符的事实强烈建议第二个字符是单个非间距分音,在您使用的字体中不可用。
检查DejaVu Sans和Open Sans的字符集证明了我的预感是正确的。 DejaVu Sans 包含' COMBINING DIAERESIS' U+0308: ¨
。 OpenSans 不。
对输入文本使用Unicode规范化,将序列o+¨
替换为其复合字符ö
U+00F6
。 ä
U+00E4
和ü
O+00FC
也是如此。