Node.js PDF printing

A utility to print PDF files from Node.js and Electron.

✅ Works on Windows and Unix-like operating systems.

✅ Supports label printers such as Rollo and Zebra.

Installation

Install using yarn :

yarn add pdf-to-printer

Or npm :

npm install --save pdf-to-printer

Basic Usage

Print a PDF file to the default printer:

import ptp from " pdf-to-printer " ; ptp . print ( " assets/pdf-sample.pdf " ) . then ( console . log ) . catch ( console . error ) ;

API

Arguments

pdf ( string ): PDF file to print. Will throw an error if no PDF specified. Note: It must be a path to a PDF existing in the file system. You may take a look at this example if you need to download your PDF file first. options ( Object [optional]): options.printer : ( string [optional]): Print to the specified printer. Will print to the default printer if name not specified. If the printer name mistyped or specified printer does not exist, nothing will print.

: ( [optional]): Print to the specified printer. Will print to the default printer if name not specified. If the printer name mistyped or specified printer does not exist, nothing will print. options.unix : ( array [optional]): Since we use lp to print documents on Unix-like operating systems you can pass any available in this list option.

: ( [optional]): Since we use to print documents on Unix-like operating systems you can pass any available in this list option. options.win32 : ( array [optional]): And since we use SumatraPDF to print documents on Windows you can pass any available in this list option.

Returns

Promise<void> .

Examples

To print a PDF file to the default printer:

ptp . print ( " assets/pdf-sample.pdf " ) . then ( console . log ) . catch ( console . error ) ;

To print to a specific printer, add the name of the printer to options:

const options = { printer : " Zebra " } ; ptp . print ( " assets/pdf-sample.pdf " , options ) . then ( console . log ) . catch ( console . error ) ;

To scale the PDF to fit into the printable area of the paper on both Windows and Unix operating systems:

const options = { printer : " Zebra " , unix : [ " -o fit-to-page " ] , win32 : [ ' -print-settings "fit" ' ] } ; ptp . print ( " assets/pdf-sample.pdf " , options ) . then ( console . log ) . catch ( console . error ) ;

Returns

Promise<string[]> : List of available printers.

Examples

ptp . getPrinters ( ) . then ( console . log ) . catch ( console . error ) ;

Returns

Promise<string> : Default printer.

Examples

ptp . getDefaultPrinter ( ) . then ( console . log ) . catch ( console . error ) ;

More examples

We have a few examples in the source code.

Contact

Please do not hesitate to report a bug or suggest an idea. You can do it here, or email me at artur.khusaenov at gmail dot com.

License

MIT