DOCX

Headers and Footers

Add headers, footers, and page numbers to document sections

Each Section can define its own headers and footers with Header and Footer classes.

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.")],
        },
    ],
});

Page Number Values

PageNumber.CURRENT; // Current page number
PageNumber.TOTAL_PAGES; // Total pages in document
PageNumber.TOTAL_PAGES_IN_SECTION; // Total pages in current section
PageNumber.CURRENT_SECTION; // Current section number

First Page and Odd/Even Pages

Use different headers and footers for the first page and alternating pages:

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