grunt-wkhtmltopdf/README.md
2015-02-22 11:44:31 +01:00

109 lines
3.3 KiB
Markdown

# grunt-wkhtmltopdf
A simple [Grunt][grunt] multitask that uses [wkhtmltopdf][wkhtmltopdf] to convert HTML files to PDF.
Convertion to PDF takes care of `@media print` CSS rules and preserves links to remote web pages.
## Getting Started
### Setting up wkhtmltopdf
Download and install wkhtmltopdf from the [project page][wkhtmltopdf_dl].
Make sure `wkhtmltopdf` is accessible from your `PATH` (Try `wkhtmltopdf -V` in your Terminal).
I'm on Mac OS X, so I created the following symlink to my `/usr/local/bin/` folder:
```
ln -s /usr/local/bin/wkhtmltopdf.app/Contents/MacOS/wkhtmltopdf /usr/local/bin/wkhtmltopdf
```
You can also install it via homebrew: `$ brew install wkhtmltopdf`.
### Use it with grunt
Install this grunt plugin next to your project's [grunt.js gruntfile][getting_started] with: `npm install grunt-wkhtmltopdf`
Then add this line to your project's `grunt.js` gruntfile:
```javascript
grunt.loadNpmTasks('grunt-wkhtmltopdf');
```
## Documentation
Simply add task definition in your gruntfile. See the folllowing example:
```javascript
//...
wkhtmltopdf: {
dev: {
src: 'path/to/some/html/file/*.html',
dest: 'pdf/output/'
},
prod: {
src: 'path/to/some/html/file/*.html',
dest: 'pdf/output/'
}
},
//...
```
Run `grunt wkhtmltopdf` to execute all the targets or `grunt wkhtmltopdf:targetname` to execute a specific target. Every `html` file defined by the `src` parameter will be turned into a PDF and saved to `dest` folder.
### Sending arguments to `wkhtml2pdf`
Arguments sent via the `args` key in the task definition will be forwarded to `wkhtml2pdf` as follow :
```javascript
//...
wkhtmltopdf: {
prod: {
src: 'path/to/some/html/file/*.html',
dest: 'pdf/output/',
args: [
'--dpi', '96',
'--print-media-type',
'--grayscale'
]
}
},
//...
```
Defining custom arguments will override default ones:
```javascript
// grunt-wkhtml2pdf default arguments
var args = [
'--dpi', '96',
'--print-media-type'
]
```
See [wkhtml2pdf documentation][wkhtmltopdf_doc] for available options
## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [grunt][grunt].
## Release History
- *v0.5.0*:
- Merged [#12](https://github.com/dharFr/grunt-wkhtmltopdf/pull/12) (Fix [#11](https://github.com/dharFr/grunt-wkhtmltopdf/issues/11)) : Added async support
- Merged [#9](https://github.com/dharFr/grunt-wkhtmltopdf/pull/9) : Added ability to override the arguments
- *v0.4.0*:
- Update project config files to work with Grunt 0.4
- Update wkthmltopdf task to use Grunt 0.4 multi-task API
- Improve predictability of the destination for created PDFs
- *v0.3.0*: grunt-wkhtmltopdf is now a multi-task
- *v0.2.0*: Fixed compatibility with grunt 0.4
- *v0.1.0*: First Release
## License
Copyright (c) 2012 Olivier Audard
Licensed under the MIT license.
[wkhtmltopdf]: http://wkhtmltopdf.org/
[wkhtmltopdf_dl]: http://wkhtmltopdf.org/downloads.html
[wkhtmltopdf_doc]: http://wkhtmltopdf.org/docs.html
[grunt]: https://github.com/gruntjs/grunt
[getting_started]: https://github.com/cowboy/grunt/blob/master/docs/getting_started.md