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.
Basic Header and Footer
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...")],
},
],
});