Skip to content
Snippets Groups Projects
user avatar
Myroslava Stavnycha authored
If local file is passed as input to pagedjs and connected to remote browser, then pass file content to browser
4b8362bf

PagedJS PDF Renderer

Render Html to PDFs using Pagedjs and Puppeteer.

Installation

npm install -g pagedjs-cli

Generating a PDF

pagedjs-cli ./path/to/index.html -o result.pdf

Options

-V, --version                     output the version number
-i, --inputs [inputs]             Inputs
-o, --output [output]             Output
-d, --debug                       Debug
-l, --landscape                   Landscape printing (default: false)
-s, --page-size [size]            Print to Page Size [size]
-w, --width [size]                Print to Page Width [width] in MM
-h --height [size]                Print to Page Height [weight] in MM
-t, --timeout [ms]                Set a max timeout of [ms]
-x, --html                        output html file
-b, --blockLocal                  Disallow access to filesystem for local files
-r, --blockRemote                 Disallow requests to remote servers
--allowedPath [allowedPaths]      Only allow access to given filesystem paths, repeatable. (default: [])
--allowedDomain [allowedDomains]  Only allow access to given remote domains, repeatable (default: [])
--outline-tags [tags]             Specifies that an outline should be generated for the resulting PDF
                                  document. [tags] specifies which HTML tags should be considered for that
                                  outline. "h1,h2" will trigger an outline with "h1" tags as root elements
                                  and "h2" elements as their childs.
--additional-script <script>      Additional script tags which are added to the HTML document before
                                  rendering. This is useful for adding custom pagedjs handlers. The option
                                  can be repeated. (default: [])
--browserEndpoint                 Use a remote Chrome server with browserWSEndpoint

Hyphenation

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.

pagedjs-cli ./path/to/index.html --hyphenate en-us --output

Development

Link and build the JS

npm install
npm link
npm install -g gulp

gulp watch

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

pagedjs-cli ./path/to/index.html --debug

Testing

Install Mocha with npm install -g mocha

Run the tests from the library root with the mocha command

mocha

Docker

Build the Docker image

docker build -t pagedmedia/pagedjs-cli .

Run the Docker image

docker run -it --security-opt 'seccomp=seccomp.json' pagedmedia/pagedjs-cli bash