Releases RSS Feed
Compatibility : nodejs and browser

Summary (version 3.3.6) Buy subsection module

This module adds a tag to include the headers and footers of an other docx document to create a new subsection

This module is available as part of the docxtemplater ENTREPRISE plan.


Subsection Module

This module exposes two tags to change subsection :

  • The tag {:subsection doc} will create a new subsection on the location of the tag (and use the header and footer that are present in the document doc).
  • The tag {:replacesection doc} will replace the current subsection (and use the header and footer that are present in the document doc).


You will need docxtemplater v3: npm install docxtemplater

Install this module with npm install --save "$url"


Your docx should contain the text: {:subsection subdoc} or `{:replacesection subdoc}.

After installing the module, you can use a working demo by running node sample.js.

At the place where you put the {:subsection subdoc} tag, a new page will be created and that page will have as headers and footers the same headers and footers as those found in the subdocument

Subsection Rendering

You can render the values in your subsection by using a custom parser and render the document with the current scope.

For example :

const SubSectionModule = require("docxtemplater-subsection-module");
const subsectionModule = new SubSectionModule({});
const expressions = require("angular-expressions");
const doc = new Docxtemplater(zip, {
    modules: [subsectionModule],
    parser: function recursiveParser(tagString) {
        return {
            get(scope, data) {
                const module =
                    data &&
                    data.meta &&
                    data.meta.part &&
                const isIncludeTag =
                    ].indexOf(module) !== -1;
                let value = null;
                if (tagString === ".") {
                    value = scope;
                } else {
                    value = expressions.compile(tagString)(scope);
                if (isIncludeTag && value) {
                return value;



Declare supportedFileTypes, which allows to use this module with the new docxtemplater constructor which was introduced in docxtemplater 3.17.


Bugfix footer appearing multiple times in output


Bugfix footer not correctly included when the XML of the main document is not formatted the exact way xmldom wants it.


Bugfix when including images that are outside /word/media or have absolute paths


Bugfix when including footer or header with links (URLS). The error message was : Cannot read property 'asBinary' of null


Multiple bugfixes :

  • Bugfix for including footer in separate documents when the header also contains footers.

  • Bugfix when rId are not numeric


Add support for including headers/footers from separate documents.


  • Update browser build to use XMLSerializer instead of xmldom

  • Use requiredAPIVersion


  • Move docxtemplater from devDependencies to dependencies

Explanation : On some versions of npm (notably 5.8.0), when having a package containing docxtemplater-subsection-module, the installation will generate a tree of node_modules that puts the module on a level where it has no access to docxtemplater. By explicitly asking it as a dependency, this issue is avoided.


  • Make module compatible with docxtemplater version 3.5 and below.

Explanation : Recently, the scopemananger API (internal API) has changed, this new version of the footnotes module makes the module work with both versions newer than 3.6 and older than 3.6 of docxtemplater.


Make it possible to include the first section of a document having multiple sections.


  • Add support for being included by subtemplate module

  • Fix corruption for replacesection tag


Add meta context argument to custom parser with information about the tag for each types of tags


Add {:replacesection} tag that allows to replace a section instead of adding it.


Fix issue with multiple subsection tag in same document


Fix corruption with loop when the headers contain objects such as arrows


Fix corrupted document when the tag {:subsection} is not used in the document


Initial release

Edgar Hipp

I'm the creator of docxtemplater. I work on making docxtemplater great since 2013.