README.md 3.02 KB
Newer Older
Fred Chasen's avatar
Fred Chasen committed
1
# PagedJS PDF Renderer
2

Fred Chasen's avatar
Fred Chasen committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Render Html to PDFs using [Pagedjs](https://gitlab.pagedmedia.org/polyfills/pagedjs) and [Puppeteer](https://github.com/GoogleChrome/puppeteer).

## Installation

```
npm install -g pagedjs-cli
```

## Generating a PDF

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

## Options

```
Fred Chasen's avatar
Fred Chasen committed
20
21
22
23
24
25
26
27
-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
28
--forceTransparentBackground      Print with transparent background
Fred Chasen's avatar
Fred Chasen committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
-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
Fred Chasen's avatar
Fred Chasen committed
43
--browserArgs <browserArgs>       Additional comma separated flags for browser
Fred Chasen's avatar
Fred Chasen committed
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
```

## Hyphenation

HTML can be pre-processed with soft hyphens by the [Hypher](https://github.com/bramstein/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
Fred Chasen's avatar
Fred Chasen committed
85
86
87
88
89
90
91
92
93

Build the Docker image

```bash
docker build -t pagedmedia/pagedjs-cli .
```

Run the Docker image

Fred Chasen's avatar
Fred Chasen committed
94
```bash
Fred Chasen's avatar
Fred Chasen committed
95
docker run -it --security-opt 'seccomp=seccomp.json' pagedmedia/pagedjs-cli bash
Fred Chasen's avatar
Fred Chasen committed
96
```