2017-03-13 00:51:01 +00:00
2017-03-12 21:34:49 +00:00
2016-05-23 22:23:05 +01:00
2017-03-07 22:48:12 +00:00
2016-07-19 19:02:44 +01:00
2016-03-26 23:43:57 +00:00
2017-03-12 21:34:49 +00:00
2017-03-13 00:51:01 +00:00

clippy the assistant

Generate .docx files with JS/TS very easily

=====

NPM version Build Status Dependency Status Known Vulnerabilities

docx

A tool to create Word Documents (.docx) with JS or TS, written in TS.

NPM

Table of Contents

Install

$ npm install --save docx

Demo

$ npm run demo

will run the demo app in the demo folder, which creates a file called "My Document.docx" in the root of the project

Usage

// Used to create docx files
var docx = require('docx');

// Create document
var doc = new docx.Document();

// Used to export the file into a .docx file
// res is express' Response object
var exporter = new docx.ExpressPacker(doc, res);
var exporter = new docx.LocalPacker(doc);

Create simple Word Document

var doc = new docx.Document();
        
var paragraph = new docx.Paragraph();
var text = new docx.TextRun('Hello World');
paragraph.addText(text);
doc.addParagraph(paragraph);

Document properties

You can add properties to the Word document by specifying options, for example:

var doc = new docx.Document({
    creator: 'Dolan Miu',
    description: 'My extremely interesting document',
    title: 'My Document'
});

Full list of options:

creator
description
title
subject
keywords
lastModifiedBy
revision

You can mix and match whatever properties you want, or provide no properties.

Create Paragraph

Every text block in OpenXML is organised in paragraphs. You can add more text to the paragraph by doing this:

var paragraph = new docx.Paragraph(),
var text = new docx.TextRun('Lorem Ipsum Foo Bar');
var paragraph = new docx.Paragraph();
paragraph.addText(text);
var paragraph = new docx.Paragraph("Short hand notation for adding text.");

After you create the paragraph, you must add the paragraph into the document:

doc.addParagraph(paragraph);

Styles

Styles is a very important part of the look of a word document. At the moment, only headings and title is supported, but son the rest will be supported along with custom styles!

Word 2013 Styles menu

Heading1 - Heading5

paragraph.heading1();
paragraph.heading2();
paragraph.heading3();
paragraph.heading4();
paragraph.heading5();

Title

paragraph.title();

Text Alignment

To change the text alignment of a paragraph, for center, left, right or justified:

paragraph.center();
paragraph.left();
paragraph.right();
paragraph.justified();

Example

paragraph.heading1().center();

The above will create a heading 1 which is centered.

Thematic Break

To add a break in the page, simply add .thematicBreak() on a paragraph:

var paragraph = new docx.Paragraph("Amazing Heading").heading1().thematicBreak();

The above example will create a heading with a page break directly under it.

Page Break

To move to a new page (insert a page break), simply add .pageBreak() on a paragraph:

var paragraph = new docx.Paragraph("Amazing Heading").heading1().pageBreak();

The above example will create a heading and start a new page immediately afterwards.

Text

Paragraphs need text run objects. To create text:

var text = new docx.TextRun("My awesome text here for my university dissertation");
paragraph.addText(text);

Text objects have methods inside which changes the way the text is displayed.

Typographical Emphasis

More info here

Bold

text.bold();

Italics

text.italic();

Underline

text.underline();

Strike through

text.strike();

Double strike through

text.doubleStrike();

Superscript

text.superScript();

Subscript

text.subScript();

All Capitals

text.allCaps();

Small Capitals

text.smallCaps();

Break

Sometimes you would want to put text underneath another line of text but inside the same paragraph.

text.break();

Chaining

What if you want to create a paragraph which is bold and italic?

paragraph.bold().italic();

Bullet Points

To make a bullet point, simply make a paragraph into a bullet point:

var text = new docx.TextRun("Bullet points");
var paragraph = new docx.Paragraph(text).bullet();

var text2 = new docx.TextRun("Are awesome");
var paragraph2 = new docx.Paragraph(text2).bullet();

doc.addParagraph(paragraph);
doc.addParagraph(paragraph2);

This will produce:

  • Bullet points
  • Are awesome

Exporting

Check the Wiki for exporting guide

Examples

Check the Wiki for examples

=====

Made with 💖

Description
Languages
TypeScript 100%