JSPrintManager is a Javascript + Client App solution for Client-side Printing & Scanning scenarios designed to be used in any Website developed on top of any Web Platform including ASP.NET MVC/CORE, PHP, Django, Ruby On Rails (RoR), Express.js, Angular, React, Blazor and more!
By writing pure Javascript code, JSPrintManager allows you to easily send raw data, text and native commands as well as known file formats (like PDF, TXT, DOC, XLS, JPG, PNG, Multipage TIFF) to any printer installed or available at the client machine without showing or displaying any print dialog box! Scan Documents & Images is also supported!
Send any raw data & commands supported by the client printer like EPSON ESC/POS, HP PCL, PostScript, Zebra ZPL and Eltron EPL, and more! Shipping labels generated by postal services like UPS, FedEx, USPS, DHL as well as PRN files are also supported!
Print PDF files without requiring Adobe Reader or any other external software! Advanced PDF Printing settings include Tray Name, Paper Size, Print Rotation, Pages Range, Auto Rotate, Auto Center, Duplex, Password-protection, and more!
Print DOC files silently with Advanced Printing settings including Password-protected files, manual Duplex, Pages Range, and more!
Print XLS files silently with Advanced Printing settings including Password-protected files, Pages Range, and more!
Print Password Protected PDF, DOC & XLS files! The password protected file is set at server side and the password to unlock it is encrypted and embedded into the file as part of its metadata.
Print Multipage TIFF image files silently with Advanced Printing settings including Tray Name, Paper Size, Print Rotation, Pages Range, Auto Rotate, Auto Center, Duplex, and more!
Print TXT files or just plain text including settings like Font (name, size, style), Text Color, Text Alignments (left, center, right, justify) , Print Orientation, and more!
Print a Group of Files (Mix Images, PDF & TXT) as they were part of a single multipage document with advanced settings like tray, paper source, duplex printing, pages range and more! Useful for CARD ID Printing scenarios.
Scan docs & images through any TWAIN/SANE-compatible devices specifying settings like DPI Resolution, Pixel Mode (Grayscale, Color, Black & White), and Output Image Format (JPG, PNG, TIF & PDF)! Under Windows, Duplex & Feeder (ADF), Show UI are also supported!
Besides getting the list of installed printers available in the client machine, you can also get further details like DPI Resolution, PortName, "Is Connected", "Is Shared", "Is Local", "Is Network", "Is Virtual or Real/Physical printer?", as well as the list of supported Papers, Media Types and list of trays/bins!
Get the list of Bluetooth devices available in the client machine including details like Name, Address, Class of Device, Connected, Remembered, and Autheticated
Bidirectional Serial Port Communication support! Send/Write & Receive/Read data strings to any RS-232, COM & TTY port available on the client system. Can be used with any type of devices like Weighing Scales!
Bidirectional TCP/IP Communication support! Send/Write & Receive/Read data to any TCP Address and port reachable from the client system. The Address requires to be in the client's allow list!
Bidirectional Bluetooth Communication support! Send/Write & Receive/Read data to any BT Address and channel reachable from the client system. The Address requires to be in the client's allow list!
IPP (Internet Printing Protocol) Communication support! Send/Request IPP JSON messages to any IPP URI device and get IPP JSON response from the client system. The target IPP Device URI requires to be in the client's allow list!
Client Printers Connectivity support: installed printers through Printer Driver (for USB connection), Shared Printers, Parallel Port (LPT), Bluetooth (RFCOMM) or Serial Port RS-232 (COM) as well as IP/Ethernet Network printers. On Linux & Mac OS, any kind of printer installed through CUPS is supported.
Based on pure Javascript code, JSPrintManager.js can be used in any Web Platform like ASP.NET, PHP, Django, Ruby On Rails (RoR), Express.js, Blazor as well as in any Web Framework like Angular or React
If the printer is installed in the client system through a Printer Driver, then you can specify to which Tray Name to send the print job. You can also get the list of trays & bins.
If the printer is installed in the client system through a Printer Driver, then you can specify the Paper Size if desired. You can also get the list of supported papers and their physical sizes.
If the installed printer supports Media Types, then you can get the list of supported media types and specify it when printing.
Detect when a new printer is added, when a printer is removed/deleted, and when any changes or modifications are done on any printers available at the client machine.
Trace print jobs status when targeting any installed client printers. Got notified whether the print job completed, number of printed pages, and many more related information.
Print to any brand and type of client printers! Thermal Label Barcode printers, POS receipt printers, Impact printers, Ticket printers, RFID printers, Dot-Matrix, 3D Printers and more!
Any Client platform can print from your Website. JSPrintManager App supports Windows, macOS / OS X, Linux, Android & Raspberry Pi (Linux ARM) devices. It's a very small client App without external dependencies! No ActiveX, No Flash, No Silverlight, No Java, No .NET Framework
Each device that connects to your website through JSPrintManager is assigned an unique Device ID based on the OS native machine UUID/GUID. You can get this ID through javascript code.
Get the JSPrintManager App info that connects to your website. You can get the client app Version number, the OS name and arch type through javascript code.
JSPrintManager can be installed and configured as a dedicated print service on a given Desktop, Server or Device running Windows, Linux, macOS/OSX or Raspberry Pi OSes
With JSPrintManager in Print Server Mode, clients such as mobile/sandboxed devices (running iOS, Android, ChromeOS...) and Terminal Services/Citrix environments will be able to print from your website! Useful for Mobile Billing, Mobile POS, Mobile Ordering, etc.
If the client machine runs multiple user sessions simultaneously, printing through JSPrintManager is possible. Take a look at the following sample by testing it in a client machine under that scenario...
JSPrintManager is a Javascript object which is used in your website to generate "Client Print Jobs". A Client Print Job allows you to specify which client printer to use (Default, one specific Printer Name, show system Printer dialog box or some LPT, Bluetooth, TCP/IP or RS232 COM port) as well as the commands or files you want to print or send to the specified client printer.
Download JSPrintManager.js CodeThe JSPrintManager App needs to be installed at the client machine just once. It's a lightweight native app (without any dependencies) that processes all the "Client Print Jobs" generated by the Javascript object. JSPrintManager App can be installed on Windows, Linux, Mac, Android & Raspberry Pi! It also can be configured as a dedicated Print Service to support printing from Mobile & Sandboxed Devices
Download JSPrintManager Client AppIf you are integrating JSPrintManager into your own web application or solution, you may wish to apply your own branding in order to deliver a consistent experience to your customers. White Label (Custom Branding) Licensing for the JSPrintManager Client App is available!
Raw Printing (a.k.a. "Raw Data Printing", "DOS-Mode Printing", "Line-Mode Printing") is the process of sending a stream of bytes (sometimes simple ASCII characters) directly to the target printer hardware. Those bytes are expressed by following the syntax and rules of the Command Language (a.k.a. Programming Language) supported by the target printer. Some Raw Printing Languages are composed of human-readable ASCII characters (like Zebra ZPL, EPL, etc) while others combine them with non-printable characters like is the case of the famous ESC/P, Postscript and PCL languages. Our JSPrintManager allows you to send those commands to your clients' printers from your website through an elegant and simple plugin-free approach.
JSPrintManager does support any kind of printers! That means you can print and send raw commands from your Website to any brand of Thermal Label Barcode printers, POS receipt printers, Impact printers, Ticket printers, RFID printers, Dot-Matrix printers, Kiosk printers, Cash Drawers/Registers, Slip printers, Multifunction printers, ID Card printers, Wristband printers, Passbook or Bankbook printers, Kitchen printers, Laser printers and Inkjet printers installed or available at the client machine.
JSPrintManager does support local installed printers with the correct driver or the "Generic / Text Only" driver built-in Windows (for USB connection), Shared Networks printers with a UNC name, printers directly connected to Parallel Port (e.g. LPT1) Centronics, Bluetooth (RFCOMM) or Serial Port RS-232 (e.g. COM1) as well as IP/Ethernet Network printers (e.g. DNS printer name + Port 9001). On Linux, Raspberry Pi & Mac OS, JSPrintManager leverages built-in CUPS system so any kind of printer installed through CUPS is supported.
You can use JSPrintManager in your Website for sending and printing any printer programming languages like Epson ESC/P, HP PCL, PostScript, Zebra ZPL and Eltron EPL, Zebra XML-enabled format, Intermec IPL, Datamax-O'Neil DPL, Godex EZPL, Printronix ZGL, SATO SBPL, Avery-Dennison (Monarch) RCL, Wasp WPL, Citizen CLP, IBM Proprinter, Cognitive-TPG CPL, Dymo ESC codes, Samsung-Bixolon ESC/POS codes and SPL, TOSHIBA-TEC TCPL, TSC TSPL-EZ, DASCOM, etc. In fact, any other printer languages that can be expressed as an array of bytes are supported! Of course, you can also print ZPL or EPL shipping labels generated by postal services like UPS, FedEx, USPS, DHL, etc. In addition to native printer commands, you can also print PRN files!
In addition to print native commands, you can also use JSPrintManager solution to send and print common file formats like PDF, TXT, DOC, XLS, JPG, PNG, and so on.
Windows Clients | Linux, RPi & Mac Clients | |
DOC, DOCX | Microsoft Word is required | LibreOffice is required |
XLS, XLSX | Microsoft Excel is required | LibreOffice is required |
Natively supported! | Natively supported! | |
TIFF | Natively supported! | Natively supported! |
TXT | Natively supported! | Natively supported! |
JPEG | Natively supported! | Natively supported! |
PNG | Natively supported! | Natively supported! |
BMP | Natively supported! | Natively supported! |
Printer Support | You can print files to local installed printers only! | You can print files to any installed printers in the CUPS system. |