pdfmake服务端生成PDF时部分表格表头不显示问题求助
问题:服务端pdfmake生成PDF时第二个表格表头不显示
我使用pdfmake生成动态表格内容,代码在pdfmake playground中运行完全正常,但在服务端通过printer.createPdfKitDocument(docDefinition)生成PDF时,第一个表格表头显示正常,第二个表格的表头却无法显示,尝试多种方案均无效。
相关代码示例
文档内容定义:
content: [ { text: "5.24011.01.0", style: "header", pageBreak: "before", }, { table: { widths: [ "*", "*", "*", "*", "*", ], headerRows: 1, body: [ [ { text: "Assembly", style: "tableHeader" }, { text: "Description", style: "tableHeader" }, { text: "Reason For Variance", style: "tableHeader" }, { text: "Component", style: "tableHeader" }, { text: "Scrap Quantity", style: "tableHeader" }, ], ["5.24011.01.0", "Damage", "O600", "7.08982.00.0", 3], ], margin: [5, 2, 10, 20], height: "50px", // 可能引发问题的属性 }, }, { text: "7.09062.05.0", style: "header", pageBreak: "before", }, { table: { widths: [ "*", "*", "*", "*", "*", ], headerRows: 1, body: [ [ { text: "Assembly", style: "tableHeader" }, { text: "Description", style: "tableHeader" }, { text: "Reason For Variance", style: "tableHeader" }, { text: "Component", style: "tableHeader" }, { text: "Scrap Quantity", style: "tableHeader" }, ], ["7.09062.05.0", "Destructive quality test", "7000", "3.69438.00.0", 1], ], margin: [5, 2, 10, 20], height: "50px", // 可能引发问题的属性 }, }, ],
服务端生成代码:
let pdfDoc = printer.createPdfKitDocument(docDefinition);
解决建议
- 移除表格的
height属性:手动设置表格高度"50px"在服务端pdfkit渲染环境中容易导致表头被压缩或隐藏,pdfmake表格高度应由内容自动撑开,无需固定。 - 验证
tableHeader样式完整性:确保服务端环境中tableHeader样式包含必要属性(如bold: true、fillColor: '#EEEEEE'等),避免因样式缺失导致表头文字与背景色一致而不可见。 - 调整分页逻辑:将
pageBreak: "before"从标题对象移至表格对象内,避免分页时表头渲染异常,修改示例如下:{ text: "7.09062.05.0", style: "header", }, { table: { /* 表格配置 */ }, pageBreak: "before" } - 同步依赖版本:确认服务端的pdfmake、pdfkit版本与pdfmake playground使用的版本一致,版本差异是导致渲染行为不一致的常见原因,建议升级至最新稳定版。
内容的提问来源于stack exchange,提问作者Vivek
相关产品推荐
相关产品推荐

