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
相关产品推荐
相关产品推荐

