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

Node Canvas加载自定义Gotham Black字体异常问题求助

解决Node Canvas中Gotham Black字体显示异常的问题

问题根源

你之前的写法有两个核心问题:

  • Gotham Black属于900字重(Black/Heavy),不是标准的bold(通常对应700字重),用style: 'bold'注册会导致Canvas匹配到系统中已有的普通Gotham Bold字体。
  • 直接将族名改为Gotham Black时,可能因为没有明确匹配字体文件的元信息,或者系统字体缓存干扰导致不显示。

两种可行解决方案

方案1:统一族名,指定正确字重

注册时明确指定字体的900字重,使用时在context.font中对应声明:

const fontPath = path.join(__dirname, 'Gotham-Black.otf');

// 注册Gotham族的900字重变体
registerFont(fontPath, { family: 'Gotham', weight: '900' });
// 字体设置中明确指定900字重
context.font = '900 90px "Gotham"';

方案2:注册为独立字体族

把Gotham Black单独注册为一个独立的字体族,避免和其他Gotham变体冲突:

const fontPath = path.join(__dirname, 'Gotham-Black.otf');

// 直接将字体族名设为"Gotham Black"
registerFont(fontPath, { family: 'Gotham Black' });
// 使用时直接引用这个独立族名
context.font = '90px "Gotham Black"';

额外注意事项

  • 确保注册字体的代码在创建画布上下文(context)之前执行,你已经做到这一点,保持即可。
  • 如果还是不显示,可以尝试重启项目,清除Node Canvas的字体缓存。

内容的提问来源于stack exchange,提问作者Bmoney

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:42:02