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

如何在jsPDF中动态修改时间范围文本的字体大小?

解决PDF动态生成文本字体大小无效的问题
  • 核心问题:你错误地将doc.setFontSize()方法与文本内容拼接,这个方法是PDF库的API(并非字符串),因此会显示{object Object}。字体大小设置必须在绘制文本之前执行,无论文本是硬编码还是动态生成的。

  • 正确实现步骤:

    1. 先完成时间范围字符串的生成
    2. 调用doc.setFontSize(2)设置目标字体大小
    3. 调用文本绘制方法(如doc.text())传入动态生成的stringRange变量
  • 示例代码:

// 生成时间范围字符串
let stringRange = padLessTen(segment.dates.start.getHours()) + ":" + padLessTen(segment.dates.start.getMinutes())
    + ' - ' + padLessTen(segment.dates.end.getHours()) + ":" + padLessTen(segment.dates.end.getMinutes())

// 设置字体大小(必须在绘制文本前调用)
doc.setFontSize(2)
// 绘制时间文本,x、y为你需要的坐标位置
doc.text(stringRange, x, y)
  • 若使用样式参数的写法:
    如果你的PDF库支持通过样式对象设置字体,需注意语法正确性:
// 错误写法:styles: { fontSize(2) }
// 正确样式写法
doc.text(stringRange, x, y, {
  fontSize: 2
})
  • 关键提醒:硬编码文本和动态文本的字体大小设置逻辑完全一致,要么在绘制前调用setFontSize(),要么在绘制方法的样式参数中指定,切勿将API方法与字符串直接拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:35:27