Skip to content
This repository was archived by the owner on Apr 12, 2019. It is now read-only.

bauhausjs/phantom-html2pdf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

72f12ba · Feb 5, 2019

History

73 Commits
Jun 15, 2015
Sep 7, 2017
Jun 22, 2016
Apr 3, 2016
Sep 8, 2017
Apr 4, 2016
Jul 5, 2016
Nov 18, 2015
Feb 5, 2019
Feb 22, 2017
Sep 8, 2017
Sep 8, 2017

Repository files navigation

phantom-html2pdf for NodeJS

Simple and lightweight HTML to text conversion using Node and PhantomJS.

Important: PhantomJS development is suspended until further notice (see #15344 for more details). Since this project is just a small wrapper around PhantomJS we will not maintain it anymore.

Installation

npm install phantom-html2pdf

Dependencies

  1. PhantomJS
  2. Async
  3. Temp
  4. Debug

Conversion API

The API exposes a single function 'convert'. Using this function, you can input a multitude of settings, which are further specified below:

var pdf = require('phantom-html2pdf');

pdf.convert(options, function(err, result) {

	/* Using a buffer and callback */
	result.toBuffer(function(returnedBuffer) {});

	/* Using a readable stream */
	var stream = result.toStream();

	/* Using the temp file path */
	var tmpPath = result.getTmpPath();

	/* Using the file writer and callback */
	result.toFile("/path/to/file.pdf", function() {});
});

Options

Calling convert() requires an options object, which includes the following definitions:

{
	"html" : "Path to HTML file",
	"css" : "Path to additional CSS file",
	"js" : "Path to additional JavaScript file",
	"runnings" : "Path to runnings file. Check further below for explanation.",
	"paperSize" : "Two ways to do this, see below",
	"deleteOnAction" : true/false (Deletes the created temp file once you access it via toBuffer() or toFile()),
  "runningsArgs": Object (You can pass an object to the runnings file when you have wrapped it with a function)
}

Instead of paths, one can also provide properly escaped source code.

Paper Size

Either supply a paper format, orientation and border (this is the default)

{format: 'A4', orientation: 'portrait', border: '1cm'}

Or supply a page width, height and border.

{width: '3in', height: '2in', border: '0.5in'}

See link below for accepted units and formats:

http://phantomjs.org/api/webpage/property/paper-size.html

Runnings File

You can also wrap your runnings configuration with a function and pass runningsArgs.

Known issues

On Macs the generated PDF is going to be a bitmap, however it works perfectly fine on Linux and Windows Servers. So be careful when developing and testing on Macs; it's going to work in production :-)

License

MIT

About

Node module to generate PDFs from HTML via PhantomJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published