Im Alltag vorallem von Kassenesystemen bekannt sind Thermodrucker – Drucker die durch erhitzen Papier farblich verändern (meist schwärzen) und so ohne Tinte drucken können.

Die günstigsten Komplettsysteme gibt es für nichteinmal 15€. Ein solches System habe ich mir gekauft, ein “Celetronic D10 Thermodrucker”.

Sudoku Drucker

Sudoku Drucker

 

Printing Sudoku
Hello World
Sudoku

Solche günstigen Drucker sind in ihrem Funktionsumfang beschränkt, können keine Barcodes generieren und keine Grafiken ausdrucken, ausschließlich Text.

Fähigkeiten

  • 58mm Thermopapier bis zu einem Durchmesser von 28mm
  • 24 Zeichen CP437 pro Zeile
  • USB Anschluss über Adapter
  • Vorschubbutton

Funktionsweise

Dieser Drucker wird per LTP->USB Adapter (im Lieferumfang) an einen Computer angeschlossen und kann ab dann Zeichen ausdrucken, den CP437 Charaktersatz. Das bedeutet man kann in einer Zeile 24 Textzeichen ausrdrucken, inklusive Sonderzeichen wie ä, ö, ü, …

Mit einem einfachen Programm lassen sich nach dem Anschlißen Daten ausdrucken.
Den Code dafür habe ich von hier entliehen: Nervengiftlabs Blog

#!/bin/bash
while IFS= read -r line
do echo -n "$line" | iconv -t cp437 > /dev/usb/lp0
echo "$line"
echo -n -e "\r" >/dev/usb/lp0
done

Zum testen reicht auch ein einfaches

echo -e "Hallo, der Drucker geht\r" >> /dev/usb/lp0

Der Text wird an den Drucker gesendet und mit einem Carriage Return beendet, die den Druck der Zeile auslöst. Der Parameter -e erlaubt das Nutzen von Sonderzeichen wie zum Beispiel \r.

Druckanwendungen

Die wichtigsten Funktionen sind nun beschrieben, jetzt geht es noch darum dem Drucker sinnvolle Anwendungen zu geben.

Druckscript

Ich hatte mit dem Druckscript von Nervengift ab und an Probleme, dass Zeichen falsch gedruckt wurden. Meine Vermutung war dass der Drucker zu wenig Zeit hatte, oder der LTP Adapter, ich habe dann eine Wartezeit zwischen den Zeilen eingefügt. Da ich für vieles keine CP417 Codes benötige hier mein “thermoascii” Script:

#!/bin/bash
while IFS= read -r line 
    do 
    echo -n "$line" > /dev/usb/lp0
    echo "$line"
    echo -n -e "\r">/dev/usb/lp0
    sleep 1.5 
done

Sudoku

Ich habe ein Sudoku Script von gitlab benutzt und es meinem Bedarf angepasst
Das habe ich daraus gemacht:  Sudoku in a Shell.

Jeder Aufruf von ./sudoku erzeugt ein neues zufälliges Sudoku

 +------+------+------+
 |2 5   |     6 |  1 9|
 |    6 | 5   1 |  4  |
 |  4 1 | 8   7 |6   3|
 +------+------+------+
 |1     |   5   |     |
 |4   9 | 3   2 |1 8  |
 |  8 3 | 7 1   |9 2 6|
 +------+------+------+
 |  1 8 |     5 |  9 2|
 |7     | 2 8   |    1|
 |6 2   | 1 7   |  3 8|
 +------+------+------+

Bald mehr Anwendungen