node package manager
It’s your turn. Help us improve JavaScript. Take the 2017 JavaScript Ecosystem Survey »


Vivliostyle Electron PDF Renderer

Render Html to PDFs using Vivliostyle.js and Electron.


npm install -g git+ssh://

Generating a PDF

vivliostyle-electron ./path/to/index.html -o result.pdf


-h, --help                  output usage information
-V, --version               output the version number
-i, --inputs [inputs]       Inputs
-o, --output [output]       Output
-d, --debug                 Show Electron Window to Debug
-l, --landscape             Landscape printing
-s, --page-size [size]      Print to Page Size [size]
-w, --width [size]          Print to Page Width [width]
-h --height [size]          Print to Page Height [weight]
-m, --page-margin [margin]  Print with margin [margin]
-n, --hyphenate [lang]      Hyphenate with language [language], defaults to "en-us"
-hi, --hypher_ignore [str]  Ignore passed element selectors, such as ".class_to_ignore, h1"
-ho, --hypher_only [str]    Only hyphenate passed elements selector, such as ".hyphenate, aside"
-e, --encoding [type]       Set the encoding of the input html, defaults to "utf-8"
-t, --timeout [ms]          Set a max timeout of [ms]


HTML can be pre-processed with soft hyphens by the Hypher library.

Pass the abbreviation a language code (such as en-us or de) when calling the renderer. You can install languages beyond those included the package.json using npm.

vivliostyle-electron ./path/to/index.html --hyphenate en-us --output

Running on Linux

Install Xvfb

sudo apt-get install xvfb

Run Xvfb

export DISPLAY=':99.0'
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &

More details here:


Link and build the JS

npm install
npm link
npm -g gulp
gulp watch

Then you can run the command with DEBUG flags for just this library

DEBUG=vivliostyle-electron:* vivliostyle-electron ./path/to/index.html --output

or for all conversion processes

DEBUG=* vivliostyle-electron ./path/to/index.html --output

To display the output in the browser window before printing, instead of outputting the file add the --debug flag.

vivliostyle-electron ./path/to/index.html --debug


Install Mocha with npm install -g mocha

Run the tests from the library root with the mocha command