Git Product home page Git Product logo

node-printer's Introduction

node-printer

Native bind printers on POSIX and Windows OS from Node.js, iojs and node-webkit.

Linux Windows Dependencies

If you have a problem, ask question to Gitter or find/create a new Github issue

Reason:

I was involved in a project where I need to print from Node.JS. This is the reason why I created this project and I want to share my code with others.

Features:

  • no dependecies;
  • native method wrappers from Windows and POSIX (which uses CUPS 1.4/MAC OS X 10.6) APIs;
  • compatible with node v0.8.x, 0.9.x and v0.11.x (with 0.11.9 and 0.11.13);
  • compatible with node-webkit v0.8.x and 0.9.2;
  • getPrinters() to enumerate all installed printers with current jobs and statuses;
  • getPrinter(printerName) to get a specific/default printer info with current jobs and statuses;
  • getPrinterDriverOptions(printerName) (POSIX only) to get a specific/default printer driver options such as supported paper size and other info
  • getSelectedPaperSize(printerName) (POSIX only) to get a specific/default printer default paper size from its driver options
  • getDefaultPrinterName() return the default printer name;
  • printDirect(options) to send a job to a specific/default printer, now supports CUPS options passed in the form of a JS object (see cancelJob.js example). To print a PDF from windows it is possible by using node-pdfium module to convert a PDF format into EMF and after to send to printer as EMF;
  • printFile(options) (POSIX only) to print a file;
  • getSupportedPrintFormats() to get all possible print formats for printDirect method which depends on OS. RAW and TEXT are supported from all OS-es;
  • getJob(printerName, jobId) to get a specific job info including job status;
  • setJob(printerName, jobId, command) to send a command to a job (e.g. 'CANCEL' to cancel the job);
  • getSupportedJobCommands() to get supported job commands for setJob() depends on OS. 'CANCEL' command is supported from all OS-es.

How to install:

Make sure you have Python 2.x installed on your system. Windows users will also require Visual Studio (2013 Express is a good fit)

from npmjs.org

Prebuilt node builds

npm install node-printer --target_arch=ia32
npm install node-printer --target_arch=x64

Prebuilt electron builds

Say you are installing 1.4.5 electron. Please check the Releases for supported Electron versions

npm install node-printer --runtime=electron --target=1.4.5 --target_arch=x64
npm install node-printer --runtime=electron --target=1.4.5 --target_arch=ia32

For building after install

npm install -g node-gyp
npm install printer --msvs_version=2013  --build-from-source=node_printer

or direct from git:

npm install git+https://github.com/tojocky/node-printer.git

if you want to to run in nwjs then rebuild the module with nw-gyp:

npm install -g nw-gyp
cd node_modules/printer
nw-gyp rebuild

For specific distribution --dist-url node-gyp parameter should be used. Example for electron:

node-gyp rebuild --target=0.37.4 --arch=x64 --dist-url=https://atom.io/download/atom-shell

Ubuntu User : You need to install libcups2-dev package sudo apt-get install libcups2-dev

How to use:

See examples

Author(s):

Contibutors:

Feel free to download, test and propose new futures

License:

The MIT License (MIT)

node-printer's People

Contributors

tojocky avatar gitawego avatar alexeyst avatar vasumahesh1 avatar antoinepairet avatar whitef0x0 avatar demiand avatar duncanhall avatar kjlaw89 avatar klawrence-fs avatar rvanzon avatar gitter-badger avatar chieffancypants avatar ericz avatar kpitn avatar

Stargazers

FRANK GO avatar  avatar  avatar  avatar  avatar Albert Kim avatar Pablo Vilas avatar

Watchers

James Cloos avatar  avatar 风飘雨 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.