A utility for Unix-like operating systems to print files from Node.js and Electron.
- Understands different types of files, such as PDF, text, PostScript, and image files.
- Supports label printers such as Rollo and Zebra.
Table of Contents
Print a PDF file to the default printer:
import { print } from "unix-print";
print("assets/file.pdf").then(console.log);
Install using Yarn:
yarn add unix-print
Or using npm:
npm install --save unix-print
A function to print a file to a printer.
Arguments
Argument | Type | Optional | Description |
---|---|---|---|
file | string |
Required | A file to print. |
printer | string |
Optional | Print a file to the specific printer. |
options | string[] |
Optional | Any option from this list. |
Returns
Promise<{stdout: string | null, stderr: string | null}>
.
To print a file to the default printer:
import { print } from "unix-print";
print("assets/file.pdf").then(console.log);
To print a file to a specific printer:
import { print } from "unix-print";
const fileToPrint = "assets/file.pdf";
const printer = "Zebra";
print(fileToPrint, printer).then(console.log);
With some printer-specific options:
import { print } from "unix-print";
const fileToPrint = "assets/file.jpg";
const printer = undefined;
const options = ["-o landscape", "-o fit-to-page", "-o media=A4"];
print("assets/file.jpg", printer, options).then(console.log);
Arguments
Argument | Type | Optional | Description |
---|---|---|---|
printResponse | {stdout: string | null} |
Required | Resolved promise returned from print . |
Returns
Promise<boolean>
: False if the job is on the queue or stdout
is null, true otherwise.
Examples
import { isPrintComplete } from 'unix-print';
const fileToPrint = 'assets/file.pdf';
const printJob = await print(fileToPrint);
async function waitForPrintCompletion(printJob) {
while (!await isPrintComplete(printJob)) {
// Wait a bit before checking again (to avoid constant checks)
await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for 1 second
}
console.log('Job complete');
}
await waitForPrintCompletion(printJob);
Returns
Promise<Printer[]>
: List of available printers.
Examples
import { getPrinters } from "unix-print";
getPrinters().then(console.log);
Returns
Promise<Printer | null>
: System default printer or null
.
Examples
import { getPrinters } from "unix-print";
getDefaultPrinter().then(console.log);
This project is licensed under the MIT License - see the LICENSE.md for details.