xDev
xDev Browser Print extension icon

xDev Browser Print

The right printer for every document.

A Chrome extension and a TypeScript SDK that let web apps for clinics, pharmacies and shops print prescriptions, invoices, receipts and labels on the printer set for each document type. No backend, no native app and no cloud print service.

In Chrome Web Store review

Free and open source under the MIT licence. No account. No tracking.

The Document mapping screen: INVOICE and RECEIPT go to a K80 receipt printer, PRESCRIPTION to an A5 printer and SPECIMEN_LABEL to a 50x30 label printer

Features

Name the document. The extension picks the printer.

The web app sends a document type such as PRESCRIPTION or RECEIPT. An administrator decides once which printer handles it.

01

A printer for each document type

Create printer profiles for A4, A5, K80 and K58 receipts or barcode and label printers, then map each document type to one. Copies, paper size and orientation can be overridden per mapping.

02

PDF and HTML through Chrome

PDF and HTML documents open Chrome’s print dialog, already set to the right paper size and orientation.

03

Receipt and label printers without a dialog

Printers that accept raw commands (ESC/POS, ZPL, TSPL) print directly over WebUSB or Web Serial, only on devices you granted on the Devices screen.

04

Only the websites you allow

Each web app is allowed by its exact address, with no wildcards, and Chrome asks for access to that one site. Permissions are per site: read the configuration, print, change mappings. You can also ask before every print.

05

Built to be safe

Site HTML is sanitised and rendered in a sandboxed frame. Each site has a rate limit and a size limit, and a repeated request with the same key does not print twice.

06

TypeScript SDK and React hook

The web app connects, prints a PDF, HTML or raw commands, and follows each job’s state with the @tdduydev/browser-print SDK or its useBrowserPrint hook.

07

Admin screens

Dashboard, printers, document mapping, devices, test print, print history, websites and settings, in English and Vietnamese.

08

Honest about Chrome’s limits

Chrome does not let extensions list or choose system printers, or report whether the user printed or cancelled. PDF and HTML always use the dialog unless an administrator starts Chrome with --kiosk-printing.

Privacy

Documents stay on the computer

The extension makes no network requests of its own. It has no server, no account, no analytics, no ads and no tracking. A document goes only to your printer.

Read the privacy policy
  • A document is kept only while its print job runs, then deleted.
  • Print history keeps metadata only, never document content.
  • No access to any website until you allow it, and then only that one.

Get started

An extension, an SDK and the source.

Chrome extension

In Chrome Web Store review

Manifest V3, for Google Chrome 118 or later on Windows 10 and 11, macOS and Linux. It has been submitted to the Chrome Web Store and is waiting for Google’s review; until then, developers can build it from source and load it unpacked.

SDK for web apps

npm install @tdduydev/browser-print

TypeScript, ESM and CommonJS, with no backend dependency. The useBrowserPrint hook works with React 18 or later.

Open source

MIT licence

The extension, the SDK, an example React app and the design documents are on GitHub at github.com/tdduydev/xdev-browser-print.

The extension is available in English and Vietnamese.

Help and legal

Privacy and support

Questions or feedback? Email duy@xdev.asia