【问题标题】:Mpdf - how to disable a fallback font when font-family is not availableMpdf - 当字体系列不可用时如何禁用后备字体
【发布时间】:2021-05-03 07:37:45
【问题描述】:

我有一个 mPDF 实例,在其中我用一个空数组覆盖了字体目录和 fontdata。

我想要实现的是,当我添加具有未在我的字体数组中配置的字体系列的 HTML 时,会引发错误。现在它会自动使用手动添加的字体。

mPDF 实例化

$config = [
    'mode' => 'utf-8',
    'format' => 'A4',
    'author' => 'John Doe',
    'creator' => 'John',
    'default_font_size' => 12,
    'default_font' => '',
    'margin_left' => 0,
    'margin_right' => 0,
    'margin_top' => 0,
    'margin_bottom' => 0,
    'margin_header' => 0,
    'margin_footer' => 0,
    'orientation' => 'P',
    'fontDir' => [], // Don't use fallback font dir.
    'fontdata' => [], // Don't use fallback fontdata


$mpdf = new Mpdf($config);

手动添加 Roboto

$config['fontDir'] = array_merge($config['fontDir'], ['path/to/my/custom/roboto/font']
$config['fontdata'] = array_merge(config['fontdata'], [
    'roboto' => [
      'R' => 'Roboto-Regular.ttf',
     ],
];

期望的结果

我遇到的问题是,当我执行以下操作时:

$mpdf->WriteHTML('<body style="font-family: Lato">Hello world!</body>');

mPDf 自动使用我手动添加的 Roboto 作为后备字体。但我很想知道是否有一种方法可以让 mPDF 抛出一个错误,指出字体 Lato 未在其字体数据中配置。

真的希望你们能帮帮我!

亲切的问候。

【问题讨论】:

    标签: php html mpdf


    【解决方案1】:

    目前 mPDF 无法做到这一点——它总是会像浏览器一样选择合适的替代字体。

    选择替代品的过程在the documentation中有描述。

    【讨论】:

      猜你喜欢
      • 2020-09-01
      • 1970-01-01
      • 2017-08-12
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      相关资源
      最近更新 更多