Utility for Unix-like operating systems to print PDF files from Node.js and Electron
npm install unix-printA 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
- Unix-print
- Basic Usage
- Installation
- API
- print(pdf, printer, options) => Promise<{stdout, stderr}>
- isPrintComplete(printResponse) => Promise
- [getPrinters() => Promise](#getprinters--promiseprinter)
- getDefaultPrinter() => Promise
- License
Print a PDF file to the default printer:
``javascript
import { print } from "unix-print";
print("assets/file.pdf").then(console.log);
`
Install using Yarn:
`bash`
yarn add unix-print
Or using npm:
`bash`
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. |string
| printer | | Optional | Print a file to the specific printer. |string[]
| options | | Optional | Any option from this list. |
Returns
Promise<{stdout: string | null, stderr: string | null}>.
To print a file to the default printer:
`javascript
import { print } from "unix-print";
print("assets/file.pdf").then(console.log);
`
To print a file to a specific printer:
`javascript
import { print } from "unix-print";
const fileToPrint = "assets/file.pdf";
const printer = "Zebra";
print(fileToPrint, printer).then(console.log);
`
With some printer-specific options:
`javascript
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: False if the job is on the queue or stdout is null, true otherwise.
Examples
`javascript
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: List of available printers.
Examples
`javascript
import { getPrinters } from "unix-print";
getPrinters().then(console.log);
`
Returns
Promise: System default printer or null.
Examples
`javascript
import { getPrinters } from "unix-print";
getDefaultPrinter().then(console.log);
``
This project is licensed under the MIT License - see the LICENSE.md for details.