Skrivare (receiptprinter)
Kassan skriver inte själv till skrivaren. Den bygger en kvittolayout och
skickar den till receiptprinter, ett eget program som kan köra på
samma maskin eller på en annan (config/printer_service.json).
receiptprinter gör om layouten till det skrivaren förstår.
kassan ──HTTP──> receiptprinter ──> USB (ESC/POS eller StarPRNT)
──> Windows skrivarkö (RAW)
──> seriellt (CHD6800:s inbyggda)
──> nätverk, TCP 9100
──> Worldline-terminalens skrivare (REST)
──> PDF (A4: verifikationer, export)
Välja skrivare
Valet görs med flaggor när receiptprinter startas. Bara en skrivare per process.
| skrivare | flaggor | skriver |
|---|---|---|
| USB, ESC/POS (TH508, SNBC m.fl.) | --usb-vendor <id> --usb-product <id> (--usb-list visar) | bild |
| USB, Star mC-Print2 | samma + --dialect star | bild |
| Nätverksskrivare | --net-printer <ip>[:9100] (+ --dialect) | bild |
| CHD6800 (inbyggd) | --serial-http --serial-port /dev/ttymxc4 | text |
| Worldline-terminalen | --worldline <nycklar.json> | text och QR |
| Windows skrivarkö | --windows-printer "<kö>" (--windows-printer-list visar) | bild |
Övriga flaggor: --http :8080 (port som kassan skickar till), --width 576 (punkter; 576 för 80 mm, 384 för 58 mm), --cut/--no-cut, --feed 4, --asset-dir assets (loggan).
Språket ska anges, inte gissas. En Star-skrivare i StarPRNT-läge
ignorerar ESC/POS-bilder tyst: den svarar OK och skriver ingenting.
Ange därför alltid --dialect star för Star.
Inställningssidan /setup
Startas receiptprinter med --config <fil> står skrivarvalet i filen, och
kan ändras på http://<receiptprinter>/setup (lösenord R-go-go, byts
på sidan). Sidan hittar Windows skrivarköer, USB-enheter och skrivare i
nätet, och skriver ut en provsida. Ändringen gäller från nästa utskrift.
Finns filen inte skapas den från flaggorna vid start.
Samma sida ställer in CleanCash (kontrollenheten på en serieport,
nåbar för kassan som WebSocket, normalt 127.0.0.1:8765) och en
seriell skanner (koderna skickas till kassans /device_event).
Serieportarna öppnas vid start; knappen “Starta om tjänsten” avslutar
receiptprinter så att Windows-tjänsten (rgo-service) startar den igen.
HTTP-adress och kataloger styrs fortfarande av flaggorna.
Windows: skrivarkön
I Windows är skrivarkön förvalet. Skrivaren installeras med sin vanliga drivrutin och receiptprinter lämnar kvittot till kön som ett RAW-jobb - samma bytes som över USB, men utan att drivrutinen behöver bytas mot WinUSB, och skrivaren går fortfarande att använda från andra program. Drivrutinen måste släppa igenom RAW (tillverkarens eller “Generic / Text Only”).
Bild eller text
De flesta skrivare får kvittot som en bild - samma bild oavsett väg, med logga och QR-kod. Två skrivare får text i stället:
- CHD6800 - bilden blir för långsam över dess seriella port.
- Worldline-terminalen - den tar inte emot bilder alls.
Med text blir kolumnerna utfyllda med mellanslag, och fet stil och dubbel höjd finns. Loggan kommer ändå med på CHD6800: den lagras i skrivarens eget minne och skrivs därifrån, så den behöver inte skickas som bild. Bara Worldline-terminalen skriver ingen logga.
Worldline-terminalens skrivare
En långsam och begränsad skrivare, men den finns där kortterminalen står.
- 60 mm, ingen kniv - kvittot rivs av för hand.
- Text, fet, dubbel höjd, å/ä/ö: fungerar.
- QR-kod fungerar (tillgodokvitton).
- Ingen logga och ingen bild - terminalen tolkar bara sitt eget textformat.
- Ett kvitto tar 2-3 sekunder; terminalen svarar först när det är utskrivet.
- Nyckelfilen är samma som kassans
config/worldline_keys.json. - Tecken per rad:
--worldline-width-chars(standard 34, uppmätt). Dubbel storlek ryms 16 tecken. - Får terminalen ett kortköp startat på själva terminalen svarar den “upptagen” (503) på utskrifter tills köpet avbryts där.
Kassalåda
Kassalådan öppnas via skrivaren. Fungerar i dag med nätverksskrivare (Star). Worldline-terminalen har ingen kassalådeport.
Fler detaljer
Teknisk översikt över alla vägar, status och kända egenheter per
skrivare: docs/skrivarvagar.md i källkoden.