node-printer
Native bind printers on POSIX and Windows OS from Node.js, iojs and node-webkit.
Linux | Windows | Dependencies |
---|---|---|
If you have a problem, ask question to or find/create a new Github issue
Reason:
I was involved in a project where I need to print from Node.JS. This is the reason why I created this project and I want to share my code with others.
Features:
- no dependecies;
- native method wrappers from Windows and POSIX (which uses CUPS 1.4/MAC OS X 10.6) APIs;
- compatible with node v0.8.x, 0.9.x and v0.11.x (with 0.11.9 and 0.11.13);
- compatible with node-webkit v0.8.x and 0.9.2;
-
getPrinters()
to enumerate all installed printers with current jobs and statuses; -
getPrinter(printerName)
to get a specific/default printer info with current jobs and statuses; -
getPrinterDriverOptions(printerName)
(POSIX only) to get a specific/default printer driver options such as supported paper size and other info -
getSelectedPaperSize(printerName)
(POSIX only) to get a specific/default printer default paper size from its driver options -
getDefaultPrinterName()
return the default printer name; -
printDirect(options)
to send a job to a specific/default printer, now supports CUPS options passed in the form of a JS object (seecancelJob.js
example). To print a PDF from windows it is possible by using node-pdfium module to convert a PDF format into EMF and after to send to printer as EMF; -
printFile(options)
(POSIX only) to print a file; -
getSupportedPrintFormats()
to get all possible print formats for printDirect method which depends on OS.RAW
andTEXT
are supported from all OS-es; -
getJob(printerName, jobId)
to get a specific job info including job status; -
setJob(printerName, jobId, command)
to send a command to a job (e.g.'CANCEL'
to cancel the job); -
getSupportedJobCommands()
to get supported job commands for setJob() depends on OS.'CANCEL'
command is supported from all OS-es.
How to install:
Make sure you have Python 2.x installed on your system. Windows users will also require Visual Studio (2013 Express is a good fit)
from npmjs.org
Prebuilt node builds
npm install printer --target_arch=ia32
npm install printer --target_arch=x64
Prebuilt electron builds
Say you are installing 1.4.5 electron. Please check the Releases for supported Electron versions
npm install printer --runtime=electron --target=1.4.5 --target_arch=x64
npm install printer --runtime=electron --target=1.4.5 --target_arch=ia32
For building after install
npm install -g node-gyp
npm install printer --msvs_version=2013 --build-from-source=node_printer
or direct from git:
npm install git+https://github.com/tojocky/node-printer.git
if you want to to run in nwjs then rebuild the module with nw-gyp:
npm install -g nw-gyp
cd node_modules/printer
nw-gyp rebuild
For specific distribution --dist-url
node-gyp parameter should be used. Example for electron:
node-gyp rebuild --target=0.37.4 --arch=x64 --dist-url=https://atom.io/download/atom-shell
Ubuntu User :
You need to install libcups2-dev package
sudo apt-get install libcups2-dev
How to use:
See examples
Author(s):
- Ion Lupascu, ionlupascu@gmail.com
Contibutors:
Feel free to download, test and propose new futures