README.md 2.67 KB
Newer Older
Fred Chasen's avatar
Fred Chasen committed
1
# Vivliostyle Electron PDF Renderer
2

Fred Chasen's avatar
Fred Chasen committed
3 4 5 6 7
Render Html to PDFs using [Vivliostyle.js](https://github.com/vivliostyle/vivliostyle.js) and [Electron](https://github.com/bjrmatos/electron-html-to).

## Installation

```
Fred Chasen's avatar
Fred Chasen committed
8
npm install -g vivliostyle-electron
Fred Chasen's avatar
Fred Chasen committed
9 10 11 12 13 14 15 16 17 18 19
```

## Generating a PDF

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

## Options

```
Fred Chasen's avatar
Fred Chasen committed
20 21 22 23
-h, --help                  output usage information
-V, --version               output the version number
-i, --inputs [inputs]       Inputs
-o, --output [output]       Output
24
-d, --debug                 Show Electron Window to Debug
Fred Chasen's avatar
Fred Chasen committed
25 26 27 28 29
-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]
30 31 32 33
-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"
Fred Chasen's avatar
Fred Chasen committed
34
-t, --timeout [ms]          Set a max timeout of [ms]
Fred Chasen's avatar
Fred Chasen committed
35 36 37 38 39 40 41 42 43 44
```

## 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.


```
45
vivliostyle-electron ./path/to/index.html --hyphenate en-us --output
Fred Chasen's avatar
Fred Chasen committed
46 47 48 49
```

## Running on Linux

Fred Chasen's avatar
Fred Chasen committed
50
Install Xvfb
Fred Chasen's avatar
Fred Chasen committed
51
```
52
sudo apt-get install libgtk2.0-dev libxtst-dev libxss1 libgconf2-dev libnss3-dev libasound2-dev xvfb
Fred Chasen's avatar
Fred Chasen committed
53 54
```

Fred Chasen's avatar
Fred Chasen committed
55
Run Xvfb
Fred Chasen's avatar
Fred Chasen committed
56 57 58 59 60 61
```
export DISPLAY=':99.0'
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
```

More details here: https://github.com/bjrmatos/electron-html-to/issues/87
Fred Chasen's avatar
Fred Chasen committed
62 63 64 65 66 67

## Development
Link and build the JS
```
npm install
npm link
68
npm install -g gulp
Fred Chasen's avatar
Fred Chasen committed
69 70 71 72

gulp watch
```

73 74 75 76 77 78
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
Fred Chasen's avatar
Fred Chasen committed
79
```
80 81 82 83 84 85 86 87
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
Fred Chasen's avatar
Fred Chasen committed
88
```
Fred Chasen's avatar
Fred Chasen committed
89 90 91 92 93 94 95 96 97

## Testing

Install Mocha with `npm install -g mocha`

Run the tests from the library root with the `mocha` command
```
mocha
```
98 99 100 101 102

## Docker
```bash
docker run -it -P -v $(pwd):/usr/src/vivliostyle-electron fchasen/vivliostyle-electron bash
```