Bei Amazon habe ich einen günstigen Bondrucker für Linux, den „Card Star“ von celectronic für Linux erstanden. Für ca. 15 Euro inklusive USB-Adapter und Netzteil erhält man einen Thermodrucker, der auf Bonpapierrollen druckt. Ich wollte einfach mal ausprobieren, ob ich das Gerät unter Linux angesteuert bekomme und Bons oder irgendetwas damit drucken kann.
Den Bondrucker anschließen und erkennen
Stecker in die Steckdose, USB-Kabel in den Computer und ein Blick mit „sudo dmesg“ zeigt, dass der Drucker direkt erkannt wird und zwar als Device /dev/usb/lp1.
Der Bondrucker druckt
Dann sollte es auch kein Problem sein auf dem Drucker zu drucken. Fürs erste habe ich also einfach echo ein paar Zeichen an den Drucker gesendet.
echo "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ0123456789§$%&/()=?#[]{}" > /dev/usb/lp1
Code-Sprache: JavaScript (javascript)
Das klappt auch, aber Sonderzeichen wir ä, ö und ü kommen falsch an. Offenbar verwendet der Drucker eine andere Codepage. Mit iconv kann man Text umkodieren. Mein Versuch mit der Codepage 850 aus den guten alten Zeiten, als man MS DOS verwendete druckt mir alles außer dem Euro und Paragraphen Zeichen.
echo "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ0123456789§$%&/()=?#[]{}" | iconv -t cp850 > /dev/usb/lp1
Code-Sprache: JavaScript (javascript)
Ebenfalls braucht der Drucker DOS Zeilenenden, die man von der Kommandozeile mittels unix2dos erhält. Der Drucker verarbeitet maximal 24 Zeichen pro Zeile. Einen Text kann man mit dem Kommando fmt nach je 24 Zeichen umbrechen. Das ergibt dann folgende Kommandozeile, um einen Text zu drucken.
echo "abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ0123456789§$%&/()=?#[]{}" | iconv -t cp850 | fmt -w 24 | unix2dos > /dev/usb/lp1
Code-Sprache: JavaScript (javascript)
Newsticker und Cowsay auf dem Bondrucker
Als kleine Anwendung kann man sich zum Beispiel die Schlagzeilen aus dem tagesschau.de RSS-Feed ausdrucken lassen. Der Einzeiler druckt die ersten zehn Schlagzeilen.
curl -s https://www.tagesschau.de/xml/rss2/| grep -m 8 '<title>\|<description>' | sed 's/<\/description>/\n\n/g'| sed 's/<\/title>/\n\n/g' | replace "<title>" "" "<description>" "" | sed -e 's/^[ \t]*//'| fmt -w 24|iconv -t cp850|unix2dos > /dev/usb/lp1
Code-Sprache: HTML, XML (xml)
Natürlich kann man auch mit z.B. cowsay eine einfache Grafik drucken
Weitere Anwendungen zum Beispiel für den Einkaufszettel aus der Cloud gedruckt zum Mitnehmen beim Shopping oder natürlich auch um einen richtigen Bon zu drucken sind durch die einfache Ansteuerung unkompliziert zu realisieren.
So ein günstiger Bondrucker für Linux macht echt Laune. Auch wenn es alles ein wenig Retro und Oldschool ist, macht’s einfach Spaß.
Sehr coole Idee mit wenigen Mitteln umgesetzt. Leider gibt es den genannten Drucker derzeit nicht mehr bei Amazon.