Files
docx-js/demo/11-declaritive-styles-2.ts

260 lines
6.8 KiB
TypeScript
Raw Normal View History

2018-08-21 02:46:21 +01:00
// Setting styles with JavaScript configuration
// Import from 'docx' rather than '../build' if you install from npm
import * as fs from "fs";
2019-10-10 01:08:01 +01:00
import {
AlignmentType,
2020-12-24 03:37:43 +00:00
convertInchesToTwip,
2019-10-10 01:08:01 +01:00
Document,
Footer,
HeadingLevel,
ImageRun,
2019-10-10 01:08:01 +01:00
Packer,
Paragraph,
Table,
TableCell,
TableRow,
TabStopPosition,
UnderlineType,
} from "../build";
2018-03-10 23:04:45 +00:00
2019-10-10 01:08:01 +01:00
const doc = new Document({
styles: {
default: {
heading1: {
run: {
font: "Calibri",
size: 52,
bold: true,
2019-10-10 01:08:01 +01:00
color: "000000",
underline: {
type: UnderlineType.SINGLE,
color: "000000",
},
},
paragraph: {
alignment: AlignmentType.CENTER,
spacing: { line: 340 },
2019-10-10 01:08:01 +01:00
},
},
heading2: {
run: {
font: "Calibri",
size: 26,
bold: true,
},
paragraph: {
spacing: { line: 340 },
},
},
heading3: {
run: {
font: "Calibri",
size: 26,
bold: true,
},
paragraph: {
spacing: { line: 276 },
},
},
heading4: {
run: {
font: "Calibri",
size: 26,
bold: true,
},
paragraph: {
alignment: AlignmentType.JUSTIFIED,
},
2019-10-10 01:08:01 +01:00
},
},
paragraphStyles: [
2019-10-10 01:08:01 +01:00
{
id: "normalPara",
name: "Normal Para",
basedOn: "Normal",
next: "Normal",
quickFormat: true,
run: {
font: "Calibri",
size: 26,
bold: true,
},
paragraph: {
spacing: { line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 },
rightTabStop: TabStopPosition.MAX,
leftTabStop: 453.543307087,
},
},
{
id: "normalPara2",
name: "Normal Para2",
basedOn: "Normal",
next: "Normal",
quickFormat: true,
run: {
font: "Calibri",
size: 26,
},
paragraph: {
alignment: AlignmentType.JUSTIFIED,
spacing: { line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 },
},
},
{
id: "aside",
name: "Aside",
basedOn: "Normal",
next: "Normal",
run: {
color: "999999",
italics: true,
},
paragraph: {
spacing: { line: 276 },
2020-12-24 03:37:43 +00:00
indent: { left: convertInchesToTwip(0.5) },
2019-10-10 01:08:01 +01:00
},
},
{
id: "wellSpaced",
name: "Well Spaced",
basedOn: "Normal",
paragraph: {
spacing: { line: 276, before: 20 * 72 * 0.1, after: 20 * 72 * 0.05 },
},
},
],
},
});
2018-03-10 23:04:45 +00:00
2019-03-18 23:50:21 +00:00
const table = new Table({
2019-09-13 00:51:20 +01:00
rows: [
new TableRow({
children: [
new TableCell({
children: [new Paragraph("Test cell 1.")],
}),
],
}),
new TableRow({
children: [
new TableCell({
children: [new Paragraph("Test cell 2.")],
}),
],
}),
new TableRow({
children: [
new TableCell({
children: [new Paragraph("Test cell 3.")],
}),
],
}),
new TableRow({
children: [
new TableCell({
children: [new Paragraph("Test cell 4.")],
}),
],
}),
],
2019-03-18 23:50:21 +00:00
});
2018-12-29 01:57:20 +00:00
2019-07-31 08:48:02 +01:00
doc.addSection({
properties: {
top: 700,
right: 700,
bottom: 700,
left: 700,
2018-08-21 02:46:21 +01:00
},
2019-07-31 08:48:02 +01:00
footers: {
default: new Footer({
children: [
new Paragraph({
text: "1",
style: "normalPara",
alignment: AlignmentType.RIGHT,
}),
],
}),
2018-08-21 02:46:21 +01:00
},
2019-07-31 08:48:02 +01:00
children: [
new Paragraph(
new ImageRun({
data: fs.readFileSync("./demo/images/pizza.gif"),
transformation: {
width: 100,
height: 100,
},
}),
),
2019-07-31 08:48:02 +01:00
new Paragraph({
text: "HEADING",
heading: HeadingLevel.HEADING_1,
alignment: AlignmentType.CENTER,
}),
new Paragraph({
text: "Ref. :",
style: "normalPara",
}),
new Paragraph({
text: "Date :",
style: "normalPara",
}),
new Paragraph({
text: "To,",
style: "normalPara",
}),
new Paragraph({
text: "The Superindenting Engineer,(O &M)",
style: "normalPara",
}),
new Paragraph({
text: "Sub : ",
style: "normalPara",
}),
new Paragraph({
text: "Ref. : ",
style: "normalPara",
}),
new Paragraph({
text: "Sir,",
style: "normalPara",
}),
new Paragraph({
text: "BRIEF DESCRIPTION",
style: "normalPara",
}),
table,
new Paragraph(
new ImageRun({
data: fs.readFileSync("./demo/images/pizza.gif"),
transformation: {
width: 100,
height: 100,
},
}),
),
2019-07-31 08:48:02 +01:00
new Paragraph({
text: "Test",
style: "normalPara2",
}),
new Paragraph(
new ImageRun({
data: fs.readFileSync("./demo/images/pizza.gif"),
transformation: {
width: 100,
height: 100,
},
}),
),
2019-06-13 01:07:00 +01:00
new Paragraph({
2019-07-31 08:48:02 +01:00
text: "Test 2",
2019-06-13 01:07:00 +01:00
style: "normalPara2",
}),
2019-07-31 08:48:02 +01:00
],
2018-03-10 23:04:45 +00: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);
});