在pdfMake库中能否根据文本分页情况条件展示指定文本?
pdfmake多页分页时第二页条件展示提示文本的实现方案
核心思路
pdfmake内置支持动态获取页码、总页数的配置项,无需手动计算文本长度,直接通过条件判断即可实现需求,不会影响默认自动分页逻辑。
推荐实现方案(提示放在页面顶部header区域)
利用动态header配置,判断总页数大于1且当前为第2页及以上时展示提示:
const docDefinition = { // 入参依次为:当前页码、总页数、页面尺寸 header: function(currentPage, pageCount) { // 仅当内容超过1页、且当前为第2页及以后时展示提示 if (pageCount > 1 && currentPage >= 2) { return { text: 'Continue reading', style: 'continueHint', margin: [40, 20, 40, 10] // 可自定义边距调整位置 } } // 第1页或总页数只有1页时不展示header return {} }, content: [{text: 'some long text ...', style: ''}], styles: { continueHint: { fontSize: 12, color: '#666', italics: true } } } pdfMake.createPdf(docDefinition).open()
可选实现方案(提示放在第二页正文开头)
如果需要将提示放在正文区域而非固定header,可通过pageBreakBefore钩子控制节点显隐:
// 你的动态长文本内容 const longDynamicText = {text: 'some very long dynamic text ...', style: ''}; const docDefinition = { content: [ // 条件渲染的提示节点 { text: 'Continue reading', style: 'continueHint', margin: [0, 0, 0, 15], pageBreakBefore: function(currentNode) { // 第1页时隐藏该节点 if (currentNode.pageNumber === 1) { currentNode.text = ''; } return false; } }, longDynamicText ], styles: { continueHint: { fontSize: 12, color: '#333' } } } pdfMake.createPdf(docDefinition).open()
内容的提问来源于stack exchange,提问作者sahil aktar
相关产品推荐
相关产品推荐

