maziggy
5cf429f696
feat(labels): scannable QR on 203 dpi thermal printers + monochrome mode ( #1870 )
...
The 40x30 mm box label rendered its QR too densely for low-res thermal
printers — the modules bled together and wouldn't scan. Two causes: the QR
was 20% of inner width (~7.5 mm on the narrowest template, half of the
others) and used ERROR_CORRECT_M. Fix adaptively so all templates benefit:
give the roomy-layout QR a 12 mm minimum size (box_40x30 -> 12 mm, ~3.5
dots/module at 203 dpi) and switch label QRs to ERROR_CORRECT_L (same
payload, chunkier modules; a label needs no M-level recovery). Keep the
quiet-zone border at 2 — the size+L gains suffice without risking scans.
Also add a Monochrome (black & white printer) option to the label dialog:
drops the colour swatch (a useless grey block on B&W) and widens the text;
the hex-code line still carries the colour. Threaded through the renderer,
route, API client, and modal, with translations in all 11 locales.
2026-07-07 11:07:08 +02:00
..
2026-04-13 13:24:28 +02:00
2026-01-02 15:00:21 +01:00
2026-03-05 08:46:39 +01:00
2026-05-02 08:10:47 +02:00
2026-05-17 10:54:28 +02:00
2026-06-14 10:52:41 +02:00
2026-06-25 15:19:28 +02:00
2026-07-05 09:58:16 +02:00
2026-03-06 08:35:06 +01:00
2026-06-26 12:31:48 +02:00
2026-06-26 16:01:28 +02:00
2026-04-13 13:24:28 +02:00
2026-04-18 12:39:07 +02:00
2026-06-11 14:49:52 +02:00
2026-04-11 12:10:45 +02:00
2026-05-15 15:43:37 +02:00
2026-02-08 12:17:20 +01:00
2026-02-18 11:58:17 +01:00
2026-06-02 10:02:17 +02:00
2026-01-02 15:00:21 +01:00
2026-02-18 11:58:17 +01:00
2026-05-06 14:23:39 +02:00
2026-05-17 15:30:05 +02:00
2026-04-22 19:10:18 +02:00
2026-06-06 10:17:09 +02:00
2026-06-23 11:34:15 +02:00
2026-06-08 09:30:16 +02:00
2026-06-25 09:57:15 +02:00
2026-07-07 10:31:19 +02:00
2026-05-12 16:12:58 +02:00
2026-05-15 12:15:39 +02:00
2026-06-27 09:47:35 +02:00
2026-06-29 08:23:29 +02:00
2026-06-22 12:27:58 +02:00
2026-05-11 13:30:27 +02:00
2026-06-25 14:54:27 +02:00
2026-06-17 11:33:23 +02:00
2026-04-25 10:44:37 +02:00
2026-06-02 14:58:10 +02:00
2026-06-19 08:05:20 +02:00
2026-01-27 16:49:28 +01:00
2026-06-02 10:23:21 +02:00
2026-03-24 11:31:32 +01:00
2026-04-18 08:50:46 +02:00
2026-05-15 08:57:03 +02:00
2026-05-15 08:50:37 +02:00
2026-05-15 08:50:37 +02:00
2026-05-13 13:23:21 +02:00
2026-06-26 13:06:40 +02:00
2026-05-11 13:30:27 +02:00
2026-06-28 11:18:18 +02:00
2026-05-01 08:13:52 +02:00
2026-06-28 13:52:05 +02:00
2026-06-29 10:59:29 +02:00
2026-06-02 13:35:06 +02:00
2026-06-09 13:32:15 +02:00
2026-06-28 11:18:18 +02:00
2026-05-23 12:28:58 +02:00
2026-05-30 13:49:09 +02:00
2026-06-16 12:00:27 +02:00
2026-05-08 14:28:41 +02:00
2026-06-08 10:39:21 +02:00
2026-05-15 13:12:41 +02:00
2026-06-21 11:55:37 +02:00
2026-04-19 09:48:10 +02:00
2026-06-27 13:56:18 +02:00
2026-04-01 10:06:01 +02:00
2026-06-20 15:50:58 +02:00
2026-06-22 10:14:31 +02:00
2026-06-05 09:22:05 +02:00
2026-05-08 11:52:42 +02:00
2026-05-26 10:36:37 +02:00
2026-05-08 11:52:42 +02:00
2026-05-21 09:33:47 +02:00
2026-05-08 11:52:42 +02:00
2026-06-17 11:33:23 +02:00
2026-06-23 11:34:15 +02:00
2026-06-17 11:33:23 +02:00
2026-06-17 11:33:23 +02:00
2026-05-21 09:15:10 +02:00
2026-05-20 11:00:54 +02:00
2026-05-20 11:16:56 +02:00
2026-05-05 14:35:08 +02:00
2026-05-22 16:31:16 +02:00
2026-06-22 14:23:30 +02:00
2026-04-24 09:59:09 +02:00
2026-04-26 10:01:17 +02:00
2026-06-21 10:25:57 +02:00
2026-03-17 12:24:36 +01:00
2026-05-13 13:23:21 +02:00
2026-06-12 13:27:17 +02:00
2026-06-19 11:29:07 +02:00
2026-06-02 12:57:51 +02:00
2026-05-18 09:38:53 +02:00