如何在jsPDF中动态修改时间范围文本的字体大小?
解决PDF动态生成文本字体大小无效的问题
核心问题:你错误地将
doc.setFontSize()方法与文本内容拼接,这个方法是PDF库的API(并非字符串),因此会显示{object Object}。字体大小设置必须在绘制文本之前执行,无论文本是硬编码还是动态生成的。正确实现步骤:
- 先完成时间范围字符串的生成
- 调用
doc.setFontSize(2)设置目标字体大小 - 调用文本绘制方法(如
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
相关产品推荐
相关产品推荐

