A curated list of resources, libraries, SDKs, standards, and examples for printing from modern web applications.
Printing from web applications is still one of the least documented areas of modern software development.
Developers often need to:
- Print receipts
- Print shipping labels
- Print invoices
- Print kitchen tickets
- Print barcode labels
- Connect to thermal printers
- Print silently
- Communicate with local devices
Unfortunately, there is no single place that documents the ecosystem.
This repository aims to become that place.
- Browser Printing
- Silent Printing
- Thermal Printers
- ESC/POS
- PDF Printing
- Local Print Bridges
- Browser APIs
- Libraries
- SDKs
- Hardware Vendors
- Examples
- Open Source Projects
- Tutorials
- Blog Posts
- Standards
- Security
- Related Projects
window.print()
Pros
- Built into every browser
Cons
- Print dialog always appears
- No printer selection
- No raw printing
- No silent mode
Silent printing generally requires:
- Local runtime
- Native application
- Browser extension
- Enterprise policies
- Kiosk mode
| Project | Open Source | Silent | Notes |
|---|---|---|---|
| QZ Tray | Partial | ✅ | Mature ecosystem |
| JSPrintManager | ❌ | ✅ | Commercial |
| Browser Print (Zebra) | ❌ | ✅ | Zebra only |
| Epson ePOS | ❌ | ✅ | Epson only |
| PortixOne | ✅ | ✅ | Vendor-agnostic, capability-based API, MVP in Windows local printing |
Description...
Pros...
Cons...
Description...
Supported browsers...
Limitations...
Description...
Use cases...
Description...
Current browser support...
...
...
...
...
...
...
...
...
...
...
...
...
- Print HTML receipt
- Print PDF
- Print ESC/POS
- Print Labels
- Print Kitchen Ticket
- Runnable examples by framework (vanilla JS, React, Vue)
- ESC/POS — quick command reference
- ZPL
- EPL
- CPCL
Why browsers restrict printing.
Localhost APIs.
Native runtimes.
Certificates.
Code signing.
Part of the PortixOne knowledge network:
- portixone — secure edge runtime connecting web apps to local hardware
- portix.dev — developer portal (docs, tutorials, roadmap, changelog)
- browser-printing-examples — runnable examples by framework
- escpos-cheatsheet — ESC/POS command reference
- thermal-printer-test-files — real
.bintest files for printers/parsers
Contributions are welcome.
If you know of a library, SDK, project, article, or resource that belongs here, feel free to open a Pull Request.
MIT
Maintained by PortixOne.