README CHANGE (you should read this, yes)
npm install @nick-d/node-printer
- Applied patches that other people have made to make it compatible with >= C++ 20 and >= Electron 20
- Changed package.json to reflect the new repo (this one)
- Basically everything else is original
- You can find the changelog in the commints
If there are bugs with this feel free to submit a PR
==========
Native bind printers on POSIX and Windows OS from Node.js, electron and node-webkit.
It just works with Node 12 because of @thiagoelg in his PR
Prebuild and CI integration courtesy of @ekoeryanto in his FORK
If you have a problem, ask question to or find/create a new Github issue
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.
- 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 infogetSelectedPaperSize(printerName)(POSIX only) to get a specific/default printer default paper size from its driver optionsgetDefaultPrinterName()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.jsexample). 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.RAWandTEXTare 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.
npm install @thiagoelg/node-printer
See examples
- Ion Lupascu, ionlupascu@gmail.com
- Thiago Lugli, @thiagoelg
- Eko Eryanto, @ekoeryanto
Feel free to download, test and propose new futures