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:
{
"evenAndOddHeaderAndFooters": 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({
evenAndOddHeaderAndFooters: 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 evenAndOddHeaderAndFooters) |