Launch Week Day 1: Socket for Jira Is Now Available.Learn More
Socket
Book a DemoSign in
Socket

pdf-to-printer

Package Overview
Dependencies
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pdf-to-printer

A utility for printing PDFs and images from Node.js and Electron.

latest
Source
npmnpm
Version
5.7.0
Version published
Weekly downloads
9.7K
-5.06%
Maintainers
1
Weekly downloads
 
Created
Source

PDF to Printer

codecov npm

A powerful Node.js and Electron utility for printing PDFs and images to Windows printers.

Features

  • Print PDFs and images to any Windows printer
  • Precise control over printing options (pages, orientation, paper size, etc.)
  • Label printer support (Rollo, Zebra, and more)
  • Printer discovery - list all available printers
  • Fast and reliable using SumatraPDF engine
  • TypeScript support with full type definitions
  • Windows only - for Unix-like systems, see unix-print

Installation

npm install pdf-to-printer
# or
yarn add pdf-to-printer

Quick Start

import { print, getPrinters, getDefaultPrinter } from "pdf-to-printer";

// Print to default printer
await print("document.pdf");

// Print with options
await print("document.pdf", {
  printer: "HP LaserJet",
  pages: "1-3",
  copies: 2,
  paperSize: "A4",
});

// List available printers
const printers = await getPrinters();
console.log(printers);

// Get default printer
const defaultPrinter = await getDefaultPrinter();
console.log(defaultPrinter?.name);

Support This Project

If you rely on this package, please consider supporting it. Maintaining an open source project takes time and your support would be greatly appreciated.

Buy Me A Coffee

API Reference

print(pdf, options?)

Prints a PDF file to a printer.

Parameters:

  • pdf (string): Path to the PDF file to print
  • options (PrintOptions, optional): Printing configuration options

Returns: Promise<void>

Throws: Error if the PDF file doesn't exist, the operating system is not supported, or printing fails

PrintOptions

OptionTypeDescription
printerstringName of the printer to use (default: system default printer)
pagesstringPages to print (e.g., "1-3,5" or "1,3,5")
subsetstringPrint only odd or even pages (valid: "odd", "even")
orientationstringPage orientation (valid: "portrait", "landscape")
scalestringContent scaling (valid: "noscale", "shrink", "fit")
monochromebooleanPrint in black and white
sidestringDuplex printing (valid: "duplex", "duplexshort", "duplexlong", "simplex")
binstringPaper tray/bin to use (number or name)
paperSizestringPaper size (e.g., "A4", "letter", "legal")
silentbooleanSuppress error messages
printDialogbooleanShow print dialog instead of printing directly
sumatraPdfPathstringCustom path to SumatraPDF executable
copiesnumberNumber of copies to print (default: 1)
paperkindnumberAllow to choose custom paper size by kind

getPrinters()

Gets a list of all available printers on the system.

Returns: Promise<Printer[]>

Throws: Error if the operating system is not supported or if the command fails

Example:

import { getPrinters } from "pdf-to-printer";

const printers = await getPrinters();
console.log(printers);
// [
//   { deviceId: "HP_LaserJet", name: "HP LaserJet Pro", paperSizes: ["A4", "Letter"] },
//   { deviceId: "Canon_Pixma", name: "Canon PIXMA", paperSizes: ["A4", "A3"] }
// ]

getDefaultPrinter()

Gets the default printer information.

Returns: Promise<Printer | null>

Throws: Error if the operating system is not supported or if the command fails

Example:

import { getDefaultPrinter } from "pdf-to-printer";

const defaultPrinter = await getDefaultPrinter();
if (defaultPrinter) {
  console.log(`Default printer: ${defaultPrinter.name}`);
  console.log(`Device ID: ${defaultPrinter.deviceId}`);
  console.log(`Paper sizes: ${defaultPrinter.paperSizes.join(", ")}`);
} else {
  console.log("No default printer set");
}

Printer Type

type Printer = {
  deviceId: string; // Unique identifier for the printer device
  name: string; // Human-readable name of the printer
  paperSizes: string[]; // Array of supported paper sizes
};

License

MIT

Keywords

pdf

FAQs

Package last updated on 19 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts