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

如何使用PDFmake仅在第一页显示页眉

问题:PDFmake 多页发票页眉与表格重叠(第二页及以后)

使用PDFmake构建动态发票时,第一页页眉显示正常,但从第二页开始页眉会与表格内容重叠。尝试过两种解决思路:从第二页起移除页眉、调整表格位置避开页眉,但均未成功;使用pageBreak尝试移除后续页面页眉时,导致所有页面的页眉都被删除。

当前的文档定义代码如下:

let docDefinition: TDocumentDefinitions = {
  header: {
    margin: [35, 35, 0, 50],
    width: 200,
      image: `image base 64`,
      alignment: 'right'
  },
  footer: {
    margin: 10,
    fontSize: 7,
    columns: [
      { text: new Date().toDateString(), alignment: 'left' },
      { text: `Company Name | ${this.pdfData.quotation.employeeName}  `, alignment: 'center' },
      { text: '', alignment: 'right' }
    ]},
};

解决方案1:保留所有页面页眉,通过边距避免重叠

PDFmake的全局页眉会渲染在页面边距范围内,因此只需调整页面的顶部边距,让正文内容自动从页眉下方开始,即可避免重叠。

修改文档定义,添加pageMargins配置,将顶部边距设置为足够容纳页眉的高度(页眉的顶部margin + 图片高度 + 页眉的底部margin):

let docDefinition: TDocumentDefinitions = {
  pageMargins: [35, 120, 35, 40], // 根据实际页眉高度调整顶部边距值
  header: {
    margin: [35, 35, 0, 50],
    width: 200,
    image: `image base 64`,
    alignment: 'right'
  },
  footer: {
    margin: 10,
    fontSize: 7,
    columns: [
      { text: new Date().toDateString(), alignment: 'left' },
      { text: `Company Name | ${this.pdfData.quotation.employeeName}  `, alignment: 'center' },
      { text: '', alignment: 'right' }
    ]
  },
  // 你的表格及其他内容
};

注意:pageMargins的四个值分别对应[左, 上, 右, 下],可根据页眉的实际尺寸微调顶部边距数值。

解决方案2:仅第一页显示页眉,后续页面隐藏

如果需求是仅第一页显示页眉,不要使用全局的header配置,而是将页眉作为第一页内容的一部分手动添加,后续页面通过分页符分隔且不添加页眉:

let docDefinition: TDocumentDefinitions = {
  content: [
    // 第一页专属页眉
    {
      margin: [35, 35, 0, 50],
      width: 200,
      image: `image base 64`,
      alignment: 'right'
    },
    // 第一页的表格内容
    yourFirstPageTableContent,
    // 分页符,切换到第二页
    { pageBreak: 'after' },
    // 第二页及以后的内容(无页眉)
    yourSubsequentPagesContent
  ],
  footer: {
    margin: 10,
    fontSize: 7,
    columns: [
      { text: new Date().toDateString(), alignment: 'left' },
      { text: `Company Name | ${this.pdfData.quotation.employeeName}  `, alignment: 'center' },
      { text: '', alignment: 'right' }
    ]
  }
};

这种方式可以精准控制仅第一页显示页眉,避免全局页眉在后续页面造成的重叠问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:25:26