DOCX

页眉与页脚

为文档节添加页眉、页脚和页码

每个 Section 可以使用 HeaderFooter 类定义自己的页眉和页脚。

基本页眉和页脚

import { Document, Paragraph, TextRun, Header, Footer, PageNumber } from "@office-open/docx";

const doc = new Document({
    sections: [
        {
            headers: {
                default: new Header({
                    children: [
                        new Paragraph({
                            alignment: "right",
                            children: [new TextRun("My Document")],
                        }),
                    ],
                }),
            },
            footers: {
                default: new Footer({
                    children: [
                        new Paragraph({
                            alignment: "center",
                            children: [
                                new TextRun("Page "),
                                new TextRun({ children: [PageNumber.CURRENT] }),
                                new TextRun(" of "),
                                new TextRun({ children: [PageNumber.TOTAL_PAGES] }),
                            ],
                        }),
                    ],
                }),
            },
            children: [new Paragraph("Document content goes here.")],
        },
    ],
});

页码值

PageNumber.CURRENT; // 当前页码
PageNumber.TOTAL_PAGES; // 文档总页数
PageNumber.TOTAL_PAGES_IN_SECTION; // 当前节的总页数
PageNumber.CURRENT_SECTION; // 当前节编号

首页和奇偶页

为首页和交替页面使用不同的页眉和页脚:

const doc = new Document({
    sections: [
        {
            properties: {
                page: {
                    differentFirstPage: true,
                    differentOddAndEvenPages: true,
                },
            },
            headers: {
                default: new Header({
                    children: [new Paragraph("Default Header")],
                }),
                first: new Header({
                    children: [new Paragraph("First Page Header")],
                }),
                even: new Header({
                    children: [new Paragraph("Even Page Header")],
                }),
            },
            footers: {
                default: new Footer({
                    children: [new Paragraph("Default Footer")],
                }),
                first: new Footer({
                    children: [new Paragraph("First Page Footer")],
                }),
                even: new Footer({
                    children: [new Paragraph("Even Page Footer")],
                }),
            },
            children: [new Paragraph("Content...")],
        },
    ],
});
Copyright © 2026