DOCX
Headers and Footers
Add headers, footers, and page numbers to document sections
Each Section can define its own headers and footers using the headers and footers options.
#Basic Header and Footer
{
"sections": [
{
"headers": {
"default": [{ "paragraph": { "alignment": "right", "children": ["My Document"] } }]
},
"footers": {
"default": [
{
"paragraph": {
"alignment": "center",
"children": ["Page ", "CURRENT", " of ", "TOTAL_PAGES"]
}
}
]
},
"children": [{ "paragraph": { "children": ["Document content goes here."] } }]
}
]
}
import { generateDocument } from "@office-open/docx";
const buffer = await generateDocument({
sections: [
{
headers: {
default: [{ paragraph: { alignment: "right", children: ["My Document"] } }],
},
footers: {
default: [
{
paragraph: {
alignment: "center",
children: ["Page ", "CURRENT", " of ", "TOTAL_PAGES"],
},
},
],
},
children: [{ paragraph: { children: ["Document content goes here."] } }],
},
],
});
#Page Number Values
Use these string literals in children arrays to insert dynamic page numbers:
| Value | Description |
|---|---|
"CURRENT" | Current page number |
"TOTAL_PAGES" | Total pages in document |
"TOTAL_PAGES_IN_SECTION" | Total pages in current section |
"CURRENT_SECTION" | Current section number |
#First Page and Odd/Even Pages
Use different headers and footers for the first page and alternating pages:
{
"settings": { "evenAndOddHeaders": true },
"sections": [
{
"properties": {
"titlePage": true
},
"headers": {
"default": [{ "paragraph": { "children": ["Default Header"] } }],
"first": [{ "paragraph": { "children": ["First Page Header"] } }],
"even": [{ "paragraph": { "children": ["Even Page Header"] } }]
},
"footers": {
"default": [{ "paragraph": { "children": ["Default Footer"] } }],
"first": [{ "paragraph": { "children": ["First Page Footer"] } }],
"even": [{ "paragraph": { "children": ["Even Page Footer"] } }]
},
"children": [{ "paragraph": { "children": ["Content..."] } }]
}
]
}
import { generateDocument } from "@office-open/docx";
const buffer = await generateDocument({
settings: { evenAndOddHeaders: true },
sections: [
{
properties: {
titlePage: true,
},
headers: {
default: [{ paragraph: { children: ["Default Header"] } }],
first: [{ paragraph: { children: ["First Page Header"] } }],
even: [{ paragraph: { children: ["Even Page Header"] } }],
},
footers: {
default: [{ paragraph: { children: ["Default Footer"] } }],
first: [{ paragraph: { children: ["First Page Footer"] } }],
even: [{ paragraph: { children: ["Even Page Footer"] } }],
},
children: [{ paragraph: { children: ["Content..."] } }],
},
],
});
#Options Reference
#Header / Footer Options
| Option | Type | Description |
|---|---|---|
children | SectionChild[] | Content elements (paragraphs, tables, etc.) |
#Section Header/Footer Keys
| Key | Type | Description |
|---|---|---|
default | SectionChild[] | Header/footer for default (odd) pages |
first | SectionChild[] | Header/footer for first page (requires titlePage) |
even | SectionChild[] | Header/footer for even pages (requires settings.evenAndOddHeaders) |