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

如何修改jsPDF表格字体?setFont仅更改标题字体

解决jsPDF表格自定义字体不生效问题

问题分析

你使用的doc.table方法来自jspdf-autotable插件,直接在styles中设置font无效,核心原因是插件对自定义字体的配置需要明确指定表头、表体的样式,或参数格式不符合插件要求。

解决方案

1. 确认字体注册逻辑正确

你已完成的字体VFS添加与注册步骤是正确的,无需修改:

doc.addFileToVFS('NEWFONT.TTF', NEWFONTS);
doc.addFont('NEWFONT.TTF', 'newFontType', 'normal');

2. 修改表格生成代码

将原doc.table调用替换为插件标准配置方式,明确指定全表格字体:

// 替换原有的 doc.table(10, 30, this.data, header);
doc.autoTable({
  startX: 10,
  startY: 30,
  head: [header], // 表头需嵌套为二维数组
  body: this.data,
  styles: {
    font: 'newFontType', // 指定自定义字体名称
    fontSize: 12
  },
  headStyles: {
    font: 'newFontType' // 单独指定表头字体,覆盖默认样式
  },
  bodyStyles: {
    font: 'newFontType' // 单独指定表体内容字体
  }
});

3. 兼容别名调用(如果项目用doc.table作为别名)

若你的项目中doc.table是autoTable的别名,可直接补充完整样式参数:

doc.table(10, 30, this.data, header, {
  styles: { font: 'newFontType' },
  headStyles: { font: 'newFontType' },
  bodyStyles: { font: 'newFontType' }
});

额外注意

  • 若上述配置仍无效,可尝试将font替换为fontFamily(部分旧版本插件使用该参数名);
  • 确保NEWFONTS变量正确引入了字体文件的Base64编码内容,TTF文件本身无损坏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:31:07