wkhtmltopdf-nodejs-pdfapi
v1.0.4
Published
Api for pdf generation using wkhtmltopdf
Downloads
13
Readme
wkhtmltopdf-nodejs-pdfapi
A library that allows to create pdf files from html using wkhtmltopdf tool.
Requirements
To use this library you need:
- wkhtmltopdf with it's dependencies
- nodejs
- wkhtmltopdf-nodejs-options-wrapper npm package
If you are going to use wkhtmltopdf-nodejs-pdfapi on a machine with operating system without graphical shell, then you will need to install display server, for example - xvfb.
For your convenience vagrant box with all necessary software has been created. It can be downloaded from https://github.com/GrizliK1988/wkhtmltopdf-nodejs-vagrant.
API
PdfApi has following methods:
##createPdf(request: CreateRequest, outputFilePath: string): Promise CreateRequest is a class from wkhtmltopdf-nodejs-options-wrapper package that wraps wkhtmltopdf options. Method will start pdf creation command and return a promise.
If pdf is generated successfully, then promise will be resolved with (data, debug) parameters, where data is the last output and debug is a full output from wkhtmltopdf. debug will exist only if debug mode is enabled in request.
If pdf generation failed, then promise will be rejected with (data, debug) parameters, where data is an error description.
##deletePdf(filePath: string): Promise Method will start pdf deletion command and return a promise. If pdf is deleted successfully, then promise will be resolved without arguments, otherwise it will be rejected with error parameter.
Usage
var wkhtmlToPdfOptions = require('wkhtmltopdf-nodejs-options-wrapper'),
PdfApi = require('wkhtmltopdf-nodejs-pdfapi');
var pdfApi = new PdfApi(),
request = new wkhtmlToPdfOptions.CreateRequest(),
page = new wkhtmlToPdfOptions.Page();
//let's generate pdf from google.com
page.setInput('http://google.com');
request.addPage(page);
request.setDebug(true); //we want to see all wkhtmltopdf output
pdfApi.createPdf(request, 'google.pdf')
.then(function(data, debug) {
console.log('Pdf is generated!');
}, function(data, debug) {
console.log('Houston, we have a problem: ' + data);
});
//after some time we can delete pdf
pdfApi.deletePdf('google.pdf').then(function() {
console.log('Pdf is deleted');
}, function(error) {
console.log('Something went wrong: ' + error);
});
PdfApi is used in wkhtmltopdf-nodejs-ws-server package.
Running tests
To run unit tests you can use npm test command.