【问题标题】:mPDF Open Sans font cannot render some german lettersmPDF Open Sans 字体无法渲染某些德语字母
【发布时间】:2016-09-13 06:46:25
【问题描述】:

我正在尝试使用德语单词 "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);

标记

@font-face{
font-family:open_sans;
src: url('mypath/mpdf60/ttfonts/OpenSans-Regular.ttf');
}

我尝试使用 mPDF 的默认字体,例如 dejavusans,效果很好。但我需要的是 Open Sans。我错过了 mPDF 中的配置还是什么?有什么问题?

【问题讨论】:

  • 您是否将编码设置为UTF-8?
  • 是的,先生,像 Ü 这样的角色可以工作。只有 ö、ä 和 ü 不起作用。是不是很奇怪?

标签: php pdf fonts mpdf


【解决方案1】:

您看到一个普通的o 后跟一个未知字符这一事实强烈表明第二个字符是一个无间距的分音符,在您使用的字体中不可用。

检查 DejaVu Sans 和 Open Sans 的字符集证明我的预感是正确的。 DejaVu Sans确实包含一个“组合分音符”U+0308: ¨。 OpenSans 没有没有

对输入文本使用 Unicode 规范化,将序列 o+¨ 替换为其复合字符 ö U+00F6ä U+00E4ü O+00FC 也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-13
    • 2013-10-17
    • 2016-12-29
    • 2016-12-21
    • 2016-08-08
    • 2020-02-18
    • 2017-02-01
    • 2012-04-04
    相关资源
    最近更新 更多