* #2388 - Check for undefined rather than falsey * Add default tab stop * Add back tab stop positions * Add test for default tab stop
82 lines
2.7 KiB
TypeScript
82 lines
2.7 KiB
TypeScript
// Example of using tab stops
|
|
|
|
import * as fs from "fs";
|
|
import { Document, HeadingLevel, Packer, Paragraph, TabStopPosition, TabStopType, TextRun } from "docx";
|
|
|
|
const columnWidth = TabStopPosition.MAX / 4;
|
|
const receiptTabStops = [
|
|
// no need to define first left tab column
|
|
// the right aligned tab column position should point to the end of column
|
|
// i.e. in this case
|
|
// (end position of 1st) + (end position of current)
|
|
// columnWidth + columnWidth = columnWidth * 2
|
|
|
|
{ type: TabStopType.RIGHT, position: columnWidth * 2 },
|
|
{ type: TabStopType.RIGHT, position: columnWidth * 3 },
|
|
{ type: TabStopType.RIGHT, position: TabStopPosition.MAX },
|
|
];
|
|
const twoTabStops = [{ type: TabStopType.RIGHT, position: TabStopPosition.MAX }];
|
|
|
|
const doc = new Document({
|
|
defaultTabStop: 0,
|
|
sections: [
|
|
{
|
|
properties: {},
|
|
children: [
|
|
new Paragraph({
|
|
heading: HeadingLevel.HEADING_1,
|
|
children: [new TextRun("Receipt 001")],
|
|
}),
|
|
new Paragraph({
|
|
tabStops: twoTabStops,
|
|
children: [
|
|
new TextRun({
|
|
text: "To Bob.\tBy Alice.",
|
|
bold: true,
|
|
}),
|
|
],
|
|
}),
|
|
new Paragraph({
|
|
tabStops: twoTabStops,
|
|
children: [new TextRun("Foo Inc\tBar Inc")],
|
|
}),
|
|
new Paragraph({ text: "" }),
|
|
new Paragraph({
|
|
tabStops: receiptTabStops,
|
|
|
|
children: [
|
|
new TextRun({
|
|
text: "Item\tPrice\tQuantity\tSub-total",
|
|
bold: true,
|
|
}),
|
|
],
|
|
}),
|
|
new Paragraph({
|
|
tabStops: receiptTabStops,
|
|
text: "Item 3\t10\t5\t50",
|
|
}),
|
|
new Paragraph({
|
|
tabStops: receiptTabStops,
|
|
text: "Item 3\t10\t5\t50",
|
|
}),
|
|
new Paragraph({
|
|
tabStops: receiptTabStops,
|
|
text: "Item 3\t10\t5\t50",
|
|
}),
|
|
new Paragraph({
|
|
tabStops: receiptTabStops,
|
|
children: [
|
|
new TextRun({
|
|
text: "\t\t\tTotal: 200",
|
|
bold: true,
|
|
}),
|
|
],
|
|
}),
|
|
],
|
|
},
|
|
],
|
|
});
|
|
|
|
const stream = Packer.toStream(doc);
|
|
stream.pipe(fs.createWriteStream("My Document.docx"));
|