You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决mPDF中font-weight参数无法修改的问题?

mPDF中font-weight不生效的原因及解决方法

核心问题

你遇到的font-weight:600不生效,本质是mPDF没有正确加载对应字重的Montserrat字体文件——mPDF不会自动识别web字体或系统字体,必须手动注册包含目标字重的字体文件,否则会 fallback 到字体的默认字重。

具体解决步骤

1. 准备对应字重的字体文件

确保你拥有Montserrat字体的600(半粗体)版本文件,通常文件名类似Montserrat-SemiBold.ttf或Montserrat-600.ttf。将该文件放到mPDF的字体目录(默认是mpdf/fonts/,也可以自定义目录)。

2. 在mPDF中注册字体及对应字重

在初始化mPDF的代码中,使用AddFont()方法注册Montserrat的不同字重,示例:

// 初始化mPDF
$mpdf = new \Mpdf\Mpdf();

// 注册常规字重(400)
$mpdf->AddFont('Montserrat', '', 'Montserrat-Regular.ttf');
// 注册600字重(半粗体)
$mpdf->AddFont('Montserrat', '600', 'Montserrat-SemiBold.ttf');

注意:第二个参数是字重标识,必须和CSS中的font-weight值对应;第三个参数是字体文件的实际文件名,要和你放入字体目录的文件完全一致。

3. 验证CSS与字体注册的匹配性

确保你的CSS中font-weight:600和注册时的字重标识完全对应。如果注册时用的是'B'(对应粗体,通常是700),那需要把CSS中的font-weight改成700,或者调整注册代码把半粗体文件映射到'600'。

额外排查点

  • 检查字体文件名拼写是否正确,大小写是否和注册代码一致(mPDF对文件名大小写敏感)。
  • 若使用旧版mPDF,数字字重支持可能不完善,可尝试将CSS的font-weight:600改为font-weight:bold,同时注册时把半粗体文件映射到'B':
    $mpdf->AddFont('Montserrat', 'B', 'Montserrat-SemiBold.ttf');
    
  • 排查是否有其他CSS规则通过更高优先级覆盖了font-weight,可以临时添加!important测试(不推荐长期使用,建议调整选择器优先级):
    .text-bold22 {
      font-weight: 600 !important;
      /* 其他样式 */
    }
    

内容的提问来源于stack exchange,提问作者Ренат Шангареев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:50:01