From 5e87e4fb0bcca78d7c71ed69b07f21e25e175714 Mon Sep 17 00:00:00 2001 From: Dolan Date: Sat, 19 Dec 2020 20:06:23 +0000 Subject: [PATCH] Add run properties to paragraph --- demo/57-paragraph-run-styles.ts | 31 +++++++++++++++++++++++++++++++ src/file/paragraph/properties.ts | 6 ++++++ 2 files changed, 37 insertions(+) create mode 100644 demo/57-paragraph-run-styles.ts diff --git a/demo/57-paragraph-run-styles.ts b/demo/57-paragraph-run-styles.ts new file mode 100644 index 0000000000..c34179364c --- /dev/null +++ b/demo/57-paragraph-run-styles.ts @@ -0,0 +1,31 @@ +// Add Run styles across the whole Paragraph +// Import from 'docx' rather than '../build' if you install from npm +import * as fs from "fs"; +import { Document, Packer, Paragraph, TextRun } from "../build"; + +const doc = new Document(); + +doc.addSection({ + children: [ + new Paragraph({ + runStyle: { + size: 100, + }, + children: [ + new TextRun("Hello World"), + new TextRun({ + text: "Foo Bar", + bold: true, + }), + new TextRun({ + text: "\tGithub is the best", + bold: true, + }), + ], + }), + ], +}); + +Packer.toBuffer(doc).then((buffer) => { + fs.writeFileSync("My Document.docx", buffer); +}); diff --git a/src/file/paragraph/properties.ts b/src/file/paragraph/properties.ts index b12bfedd8e..d40624b967 100644 --- a/src/file/paragraph/properties.ts +++ b/src/file/paragraph/properties.ts @@ -12,6 +12,7 @@ import { HeadingLevel, Style } from "./formatting/style"; import { LeaderType, TabStop, TabStopPosition, TabStopType } from "./formatting/tab-stop"; import { NumberProperties } from "./formatting/unordered-list"; import { OutlineLevel } from "./links"; +import { IRunPropertiesOptions, RunProperties } from "./run"; import { Shading } from "./run/formatting"; export interface IParagraphStylePropertiesOptions { @@ -51,6 +52,7 @@ export interface IParagraphPropertiesOptions extends IParagraphStylePropertiesOp readonly fill: string; readonly color: string; }; + readonly runStyle?: IRunPropertiesOptions; } export class ParagraphProperties extends IgnoreIfEmptyXmlComponent { @@ -142,6 +144,10 @@ export class ParagraphProperties extends IgnoreIfEmptyXmlComponent { if (options.shading) { this.push(new Shading(options.shading.type, options.shading.fill, options.shading.color)); } + + if (options.runStyle) { + this.push(new RunProperties(options.runStyle)); + } } public push(item: XmlComponent): void {