Silent receipt and label printing for web apps like the Koha ILS, via the Olorin Companion App on this computer.
Users
5
−2 in 30 days
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
0 in 30 days
Store rank
#252K
#210K among extensions
Version
2.0.0
updated 27 Jul 2026
Users
monthly, 3 months
Latest, 16 Oct 2026:5 usersMove the mouse over the chart for any month
Ratings count
monthly, 3 months
Latest, 16 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About Olorin
1. The web application embeds a print button in the web app, notice/slip
templates carry it:
```html
<button id="webPrint" data-printer="receipt_printer" data-print="#receipt">Print</button>
```
`data-printer` names one of five logical printers — `receipt_printer`,
`sticker_printer`, `paper_printer`, `full_sheet_printer`,
`label_printer` and `data-print` is a CSS selector for the element whose
contents should print. Any element with the `olorinPlugin` class works the
same way.
2. Wrap the printable part of the slip:
```html
<span id="receipt"> ... slip content ... </span>
```
3. To print automatically when the page loads, trigger a click on the
button from the page's own JavaScript. In Koha that means setting the
`IntranetSlipPrinterJS` system preference to:
```javascript
setTimeout(function () {
$("#webPrint").trigger("click");
}, 1000);
```
(Any page script that dispatches a real click works — jQuery is not
required.)
4. The extension's options page maps each logical printer to a real OS
printer, with per-printer page size, margins, orientation, number of
copies, and duplex (long edge / short edge) mode. Settings are stored by
the companion app, so they are shared by every browser on the machine.
Pages can react to print outcomes by listening for a DOM event:
```javascript
document.addEventListener("olorin:print-result", (e) => console.log(e.detail));
// e.detail = { success: true } or { success: false, error: "..." }
```