Printing (PeriPage A40)
osd prints protocols natively to a PeriPage A40 Bluetooth thermal printer — with no vendor app on the tablet. This page is for both operators (printing a closed protocol on the tablet) and admins (registering printers so the fleet can reach them).
|
There is nothing to install and nothing to pair by hand on the tablet. An admin registers a printer’s MAC address once in the admin panel; from then on any enrolled tablet can print to it. |
How native printing works
osd builds the raw thermal command stream itself, in Rust — it does not drive a manufacturer app.
-
The command stream is produced by the in-repo, zero-dependency
peripage-encodercrate. -
On Android the bytes reach the printer over the
tauri-plugin-peripageplugin, which speaks Classic Bluetooth RFCOMM. -
On the desktop build the same job goes out over a USB path instead.
-
Printing runs off the UI thread, so the app never freezes while a job is sent.
This path is built and shipped. For the full protocol- and encoding-level detail, see the PeriPage A40 spike.
Registering a printer (admin)
Printers are enrolled centrally, and the admin panel is the single source of truth.
-
In the admin panel, open Drucker (Printers).
-
Register the printer by its MAC address.
-
The registration syncs down to the whole tablet fleet. Printers are pull-only — tablets read the registry, they never write to it.
|
No Bluetooth bonding is required on the tablet. The A40 is reached over insecure RFCOMM, so there is no pairing dialog and no per-tablet setup — register the MAC once and the fleet picks it up. |
Printing from the tablet (operator)
You print from a closed protocol — see Dienst lifecycle for how a protocol reaches the closed state.
-
Open the closed protocol’s preview.
-
Tap Drucken (Print).
-
The print picker lists the registered fleet by MAC address, and shows each printer’s live battery % — reading the battery doubles as a reachability check, so a printer that answers is a printer you can print to.
-
Pick a printer to print.
|
Tapping Drucken also triggers a fresh fleet-sync, so a printer an admin registered moments ago shows up right away — you do not have to visit Settings first. |
What prints well
| Content | Behaviour |
|---|---|
Continuous / roll output |
Works well — this is the intended mode. |
A4 over Bluetooth |
Prints page-by-page, with a tear-off feed between pages. |
|
The protocol PDF itself is rendered with Typst in Rust; the in-app preview is a rasterized image of that document. Thermal printing sends its own raster command stream, independent of the PDF. |
Desktop printing
On the desktop build you print over USB-C. From Settings you can also send a Testdruck (test page) to confirm the printer and paper are working before you rely on it.
Paper and quality
|
Tear-away paper alignment is out of scope. Perforated / die-cut roll is not aligned to page boundaries — use continuous roll instead. |
-
If prints look faint or grey, source a more thermally-sensitive roll; a more sensitive paper improves the darkness of the output.
Related pages
-
Admin panel — register printers under Drucker.
-
Dienst lifecycle — closing a protocol so you can print it.
-
the PeriPage A40 spike — protocol and encoding deep dive.