Ein Kassenbon auf einer Papierrolle
Eine Ladenkasse druckt auf eine 80 mm breite Rolle, und eine Rolle hat keine Unterkante: Das Papier wird dort abgeschnitten, wo der Einkauf endet. Die Seite ist also so lang wie das Gekaufte, und keine Zahl darauf steht vorher fest. Eine Zeile ergibt sich aus Menge mal Stückpreis, die Steuer zu jedem Satz wird aus dem Bruttobetrag herausgerechnet, der sie trägt, und das Wechselgeld ist, was vom übergebenen Schein übrig bleibt. Ein Artikel mehr, und die Rolle wächst um eine Zeile, mit den Summen weiterhin darunter.
Der Barcode am Fuß ist das, was der Laden scannt, wenn der Bon zurückkommt — eine Rückgabe, ein Umtausch, ein Garantiefall. Nichts wählt seinen Codesatz von Hand: Die Bibliothek liest die Bonnummer, findet darin nur Ziffern und packt jeweils zwei Ziffern in ein Symbol, 112 Module, wo das Ausschreiben der Nummer Zeichen für Zeichen 189 bräuchte. Ob er sich scannen lässt, sagt ein Scanner, und einer sagt es: Ein Decoder wird auf die erzeugte Seite gerichtet und liest die Nummer zurück.
Was dieses Beispiel zeigt
- Eine 80 mm breite Rolle, so lang abgeschnitten, wie der Einkauf es ergibt.
- Sechs Artikel, die Steuer nach Satz zusammengefasst und das Wechselgeld aus dem übergebenen Schein berechnet.
- Die Bonnummer als Barcode, in dem Codesatz, den die Bibliothek dafür wählt.
Der Quellcode, vollständig
Nichts ist weggelassen und nichts vereinfacht: Das ist das Programm genau so, wie es läuft, für den Entwickler, der diese Bibliothek nutzt.
Die dritte ist die Beschreibung selbst: eine schlichte Liste dessen, was die Seite sagen muss, und das wird dem Dienst gesendet.
Den Rust-Quellcode lesen
Den Python-Quellcode lesen
Den JSON-Quellcode lesen
Das Dokument selbst
Das Dokument auf Englisch öffnen
Das Dokument auf Französisch öffnen
Das Dokument auf Deutsch öffnen
Das Dokument auf Spanisch öffnen
Das Dokument auf Italienisch öffnen
Das Dokument auf Portugiesisch öffnen