unix-print
v1.3.2
Published
Utility for Unix-like operating systems to print PDF files from Node.js and Electron
Downloads
4,583
Maintainers
Readme
Unix-print
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
Basic Usage
Print a PDF file to the default printer:
import { print } from "unix-print";
print("assets/file.pdf").then(console.log);
Installation
Install using Yarn:
yarn add unix-print
Or using npm:
npm install --save unix-print
API
print(pdf, printer, options) => Promise<void>
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);
isPrintComplete(printResponse) => Promise<boolean>
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);
getPrinters() => Promise<Printer[]>
Returns
Promise<Printer[]>
: List of available printers.
Examples
import { getPrinters } from "unix-print";
getPrinters().then(console.log);
getDefaultPrinter() => Promise<Printer | null>
Returns
Promise<Printer | null>
: System default printer or null
.
Examples
import { getPrinters } from "unix-print";
getDefaultPrinter().then(console.log);
License
This project is licensed under the MIT License - see the LICENSE.md for details.