Node.js printer bindings
npm install @alexssmusica/node-printerbash
npm install @alexssmusica/node-printer
`
Requirements
- Node.js >= 18.0.0
- Windows: No additional requirements
- Linux/macOS: CUPS (Common Unix Printing System)
Features
- Direct printing of raw data or text
- File printing
- Printer management (list, get info, set defaults)
- Job management (view, control)
- Cross-platform support (Windows, Linux, macOS)
API Reference
$3
#### getPrinters()
Returns an array of all available printers with their properties and current jobs.
`javascript
const printer = require('@alexssmusica/node-printer');
const printers = printer.getPrinters();
`
#### getDefaultPrinterName()
Returns the name of the default printer. Returns null if no default printer is set.
`javascript
const defaultPrinter = printer.getDefaultPrinterName();
`
#### getPrinter(printerName)
Get detailed information about a specific printer.
- printerName {String} Name of the printer
`javascript
const printerInfo = printer.getPrinter('My Printer');
`
#### getPrinterDriverOptions(printerName)
Get printer driver specific options.
- printerName {String} Name of the printer
`javascript
const driverOptions = printer.getPrinterDriverOptions('My Printer');
`
$3
#### printDirect(options)
Print raw data directly to the printer.
Options:
- data {String|Buffer} Raw data to print
- printer {String} Printer name
- docname {String} Document name
- type {String} Data type (e.g., 'RAW', 'TEXT')
`javascript
printer.printDirect({
data: 'Hello World!',
printer: 'My Printer',
docname: 'Test Document',
type: 'RAW'
});
`
#### printFile(options)
Print a file directly to the printer.
Options:
- filename {String} Path to the file to print
- printer {String} Printer name
- docname {String} Document name
`javascript
printer.printFile({
filename: '/path/to/file.txt',
printer: 'My Printer',
docname: 'File Document'
});
`
$3
#### getJob(printerName, jobId)
Get information about a specific print job.
- printerName {String} Name of the printer
- jobId {Number} ID of the job
`javascript
const jobInfo = printer.getJob('My Printer', 123);
`
#### setJob(printerName, jobId, command)
Control print jobs using various commands.
- printerName {String} Name of the printer
- jobId {Number} ID of the job
- command {String} Job command
Available commands:
- "CANCEL"
- "PAUSE"
- "RESTART"
- "RESUME"
- "DELETE"
- "SENT-TO-PRINTER"
- "LAST-PAGE-EJECTED"
- "RETAIN"
- "RELEASE"
`javascript
printer.setJob('My Printer', 123, 'PAUSE');
`
$3
#### getSupportedPrintFormats()
Get a list of supported print formats for direct printing.
`javascript
const formats = printer.getSupportedPrintFormats();
`
#### getSupportedJobCommands()
Get a list of supported job commands.
`javascript
const commands = printer.getSupportedJobCommands();
``