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

pdfmake.js中background函数内设置两个绝对定位文本失效问题求助

解决pdfmake.js背景函数中多个页眉文本仅最后一个生效的问题

一眼就看出问题所在啦——你当前返回的对象里重复定义了text、fontSize和absolutePosition这些属性,而JavaScript对象是不允许重复键的,后面的属性会直接覆盖前面的,所以自然只有最后一段文本能显示出来。

解决办法很简单,把多个文本元素放到数组里就好,pdfmake支持在background中返回数组类型的内容,每个数组项对应一个独立的文本块。

修改后的代码如下:

background: function(currentPage, pageCount) {
  return [
    {
      text: 'pagenumber ' + currentPage,
      fontSize: 12,
      absolutePosition: { x: 50, y: 60 }
    },
    {
      text: 'printtime: ' + moment(this.result[0].time).format("DD.MM.YYYY HH:mm"),
      fontSize: 12,
      absolutePosition: { x: 600, y: 80 }
    }
  ];
}

关键说明:

  • pdfmake的background函数既可以返回单个渲染对象,也能返回一个元素数组,每个数组项都是独立的可渲染单元
  • 原代码的问题属于JavaScript对象的基础特性:重复的键会被后续值覆盖,和pdfmake本身无关
  • 把每个文本块单独封装成对象,各自定义位置和样式,就能让它们分别显示在指定区域了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:05:03