Files
docx-js/demo/16-multiple-sections.ts

148 lines
4.6 KiB
TypeScript
Raw Normal View History

2018-08-21 02:46:21 +01:00
// Multiple sections and headers
2023-06-05 00:33:43 +01:00
2018-08-21 02:46:21 +01:00
import * as fs from "fs";
2023-06-05 00:33:43 +01:00
import { Document, Footer, Header, Packer, PageNumber, NumberFormat, PageOrientation, Paragraph, TextRun } from "docx";
2018-08-21 02:46:21 +01:00
2021-03-19 20:53:56 +00:00
const doc = new Document({
sections: [
{
children: [new Paragraph("Hello World")],
},
{
2021-03-19 21:40:53 +00:00
properties: {
page: {
pageNumbers: {
start: 1,
formatType: NumberFormat.DECIMAL,
2021-03-19 21:40:53 +00:00
},
},
},
2021-03-19 20:53:56 +00:00
headers: {
default: new Header({
children: [new Paragraph("First Default Header on another page")],
}),
},
footers: {
default: new Footer({
children: [new Paragraph("Footer on another page")],
}),
},
2021-03-19 21:40:53 +00:00
2021-03-19 20:53:56 +00:00
children: [new Paragraph("hello")],
},
{
2021-03-19 21:40:53 +00:00
properties: {
page: {
size: {
orientation: PageOrientation.LANDSCAPE,
},
pageNumbers: {
start: 1,
formatType: NumberFormat.DECIMAL,
2021-03-19 21:40:53 +00:00
},
},
},
2021-03-19 20:53:56 +00:00
headers: {
default: new Header({
children: [new Paragraph("Second Default Header on another page")],
}),
},
footers: {
default: new Footer({
children: [new Paragraph("Footer on another page")],
}),
},
children: [new Paragraph("hello in landscape")],
},
{
2021-03-19 21:40:53 +00:00
properties: {
page: {
size: {
orientation: PageOrientation.PORTRAIT,
},
},
},
2021-03-19 20:53:56 +00:00
headers: {
default: new Header({
2019-11-21 01:12:32 +00:00
children: [
2021-03-19 20:53:56 +00:00
new Paragraph({
children: [
new TextRun({
children: ["Page number: ", PageNumber.CURRENT],
}),
],
2019-11-21 01:12:32 +00:00
}),
],
2019-07-31 08:48:02 +01:00
}),
2021-03-19 20:53:56 +00:00
},
2021-03-19 21:40:53 +00:00
2021-03-19 20:53:56 +00:00
children: [new Paragraph("Page number in the header must be 2, because it continues from the previous section.")],
},
{
2021-03-19 21:40:53 +00:00
properties: {
page: {
size: {
orientation: PageOrientation.PORTRAIT,
},
pageNumbers: {
formatType: NumberFormat.UPPER_ROMAN,
2021-03-19 21:40:53 +00:00
},
},
},
2021-03-19 20:53:56 +00:00
headers: {
default: new Header({
2019-11-21 01:12:32 +00:00
children: [
2021-03-19 20:53:56 +00:00
new Paragraph({
children: [
new TextRun({
children: ["Page number: ", PageNumber.CURRENT],
}),
],
2019-11-21 01:12:32 +00:00
}),
],
2019-07-31 08:48:02 +01:00
}),
2021-03-19 20:53:56 +00:00
},
2019-07-31 08:48:02 +01:00
children: [
2021-03-19 20:53:56 +00:00
new Paragraph(
"Page number in the header must be III, because it continues from the previous section, but is defined as upper roman.",
),
],
},
{
2021-03-19 21:40:53 +00:00
properties: {
page: {
size: {
orientation: PageOrientation.PORTRAIT,
},
pageNumbers: {
start: 25,
formatType: NumberFormat.DECIMAL,
2021-03-19 21:40:53 +00:00
},
},
},
2021-03-19 20:53:56 +00:00
headers: {
default: new Header({
2019-11-21 01:12:32 +00:00
children: [
2021-03-19 20:53:56 +00:00
new Paragraph({
children: [
new TextRun({
children: ["Page number: ", PageNumber.CURRENT],
}),
],
2019-11-21 01:12:32 +00:00
}),
],
2019-07-31 08:48:02 +01:00
}),
2021-03-19 20:53:56 +00:00
},
children: [
new Paragraph(
"Page number in the header must be 25, because it is defined to start at 25 and to be decimal in this section.",
),
2019-07-31 08:48:02 +01:00
],
2021-03-19 20:53:56 +00:00
},
2019-07-07 03:54:29 +01:00
],
});
2019-08-07 22:12:14 +01:00
Packer.toBuffer(doc).then((buffer) => {
2018-08-21 02:46:21 +01:00
fs.writeFileSync("My Document.docx", buffer);
});