npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ipp-easyprint

v3.0.5

Published

NPM package that allows easy printing via IPP.

Downloads

41

Readme

ipp-easyprint

This NPM package allows for easy interfacing to a network printer via IPP.

This package is build upon the ipp package and my own TS types.

Notice that this package was mainly built for my own needs, and it is therefore not thouroughly tested.

Usage

Set up the printer by providing the HTTP address to the printer.

const printer = new IPPPrinter("http://myprinter.url");

Fetch the current status of the printer. Specific attributes can be requested, and all available attributes can be found at https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/ipp/index.d.ts or https://www.iana.org/assignments/ipp-registrations/ipp-registrations.xhtml#ipp-registrations-2. Get all available attributes by providing "all".

This is a helpful method for getting insight in which job attributes the printer supports.

const status: object = await printer.printerStatus("all");

Setting up the info about a print job. One can either provide a path to the file in disk, or a Buffer. The available job attributes can be found at the URLs above.

const job: IPrintJobInfo = {
  // buffer?: Buffer,
  fileType: "application/pdf",
  jobName: "my awesome job name",
  jobAttributes: {
    "page-ranges": "4-7",
    "print-quality": "high",
    sides: "two-sided-long-edge",
    media: "iso-a4",
  },
  path: "path to file on disk",
  username: "username",
}

The job attributes that you printer supports can be found at status["job-creation-attributes-supported"] and supported and default values for specific attributes, for example the 'sides' attribute, can be found at status["sides-supported"] and status["sides-default"].

The fileType defaults to "application/octet-stream", which signals the printer to try to figure out the file type itself. The most common file types are probably "image/jpeg", "image/png", "text/plain" and "application/pdf".

Send a print job to the printer

const jobId: number = await printFile(job);

Request that the printer identifies itself by beeping and flashing. Available idetification methods are 'display', 'flash', 'sound' and 'speak', but not all printers support all actions.

await printer.identify(status["identify-actions-supported"]);