Hallo Stefan,
vielen lieben Dank für deine Antwort und Erklärung. Hier ein kleines Update, falls jemand anders auch mal versucht diesen Drucker (oder ähnliche von STAR) auf einem Raspberry Pi mit dem Javaprinter zu verwenden.
Leider hatte ich keinen Erfolg!
In den Einstellen musste ESC/POS Routing zwar aktiviert werden[...]
1. Hier hatte ich bereits kurz erwähnt, dass es unter Windows eine ESC/Pos Routing Einstellung gibt. Die genaue Erklärung dazu findet man hier:
https://github.com/mike42/escpos-php/is ... -127620436
==> Weder die direkte Verwendung mit dem Javaprinter noch
https://github.com/klirichek/zj-58 funktioniert also unter Raspberry Pi OS.
Bitte versuche doch mal folgendes:
1. Hole dir den Linux.CUPS-Treiber vom Star-Drucker und richte ihn unter CUPS ein.
2. Mache einen Einzeiler in einem Texteditor und drucke den auf den Drucker (also unabh. von OrderSprinter).
3. Wenn (2) funktioniert hat, dann mache den Drucker zum Standard und teste mal mit javaprinter -cups -configfile=...
2. Zunächst sei gesagt, dass ich mich mit CUPS etc. nicht wirklich auskenne. Um alles zu testen habe ich also erst einmal einen Kyocera SW-Laserdrucker installiert. Hat sofort funktioniert!
Unter
http://www.starmicronics.com habe ich mir für den TSP100 den entsprechenden Treiber herunter geladenen und die Filter- und PPD-Dateien dementsprechend in "//usr/lib/cups/filter/" und "//usr/share/cups/model/star/" kopiert. Die anschließende Installation des Druckers war keine Problem. Der richtige Treiber wird automatisch gefunden und kann folglich konfiguriert werden (Papier, Druckgeschwindigkeit, Kassenschubladen etc.). Beim Testdruck erscheint dann jedoch folgender Fehler: "Filter failed". Dem Log-File unter "//var/log/cups/error_log" konnte ich dann entnehmen, dass die rastertostart Filter-Datei mit einem Fehler stoppt. Dieses Fehlerbild führte mich dann zu der banale "Lösung", dass die Linux-Treiber von Star natürlich für die x86- und nicht ARM CPU-Architektur gedacht sind. Im Netz konnte ich leider keinen entsprechenden Treiber finden.
3. An dieser Stelle wurde der Star-Drucker eingepackt und ein Epson TM T-88 IV für 30€ gekauft. Den Epson angeschlossen und sofort hat es per "direktem" Druck funktioniert. Den STAR-Drucker wollte ich mir später nochmal anschauen.
4. Im Nachhinein konnte ich feststellen, dass im Treiberpaket von starmicronics der Quellcode und ein makefile des Treibers zu finden sind. "sudo make und sudo make install" im entsprechenden Verzeichnis enden zwar mit einigen Warnungen, tatsächlich können nun aber normale (Texteditor, LibreOffice) Ausdrucke über den CUPS-Server getätigt werden.
==>
Kleiner Erfolg!
5. Beim Druck über den Javaprinter kommt es jedoch zu folgendem Fehler:
Code: Alles auswählen
Print Work Job: 56
Scaled from 271 to width: 144 by scale 0.5313653136531366
Starting CUPS print
Document transferred to printer
Print job failed
javax.print.PrintException: java.io.IOException: Cannot run program "/usr/bin/lpr": error=2, No such file or directory
...
6. Über "sudo apt-get install cups-bsd" wurde das scheinbar fehlende Paket installiert
==> "sudo apt-get install lpr" führt im Javaprinter zu einem Fehler, da lpr den Druckername nicht zuordnen kann.
7. Testdrucke über "lp -d TSP test.txt" bzw. "lpr -P TSP test.txt" (TSP ist der Druckername) funktionieren einwandfrei.
==>
Nächster Erfolg!
8. Voller Hoffnung nun der finale Test mit dem Javaprinter unter der Verwendung von CUPS.
Code: Alles auswählen
pi@raspberrypi:~ $ cd /usr/local/bin/javaprinter
pi@raspberrypi:/usr/local/bin/javaprinter $ sudo java -jar javaprinter.jar -mode=cups -cupsprinter="TSP" -configfile=config.json
Javaprinter version 2.0
Operation mode:
OperationMode [asyncUsb=false, allowBigPackets=false, weakssl=false, cups=true, legacy=false, onlydump=false, cupsPrintername=TSP, configFile=config.json]
CUPS information:
Number of print services: 1
Available printer:
TSP
Read: config.json
Instance: 1
Config: Config [printersize=40, vendorid=519, productid=3, currency=Euro, decpoint=,, companyinfo=Musterrestaurant
ABC-Stra\u00dfe 123
12345 Beispielstadt
Deutschland
StNR: 123
UStID:456, escinits=[27, 64, 27, 116, 0], escposts=[29, 86, 66, 10, 27, 64], printcode=123, baseurl=http://192.168.178.73, baseusername=, basepass=, verbose_closing_summary=0]
Print Work Job: 66
Scaled from 271 to width: 144 by scale 0.5313653136531366
Starting CUPS print
Document transferred to printer
Document transferred to printer
Printed to TSP
Print Work Job: 67
Scaled from 1000 to width: 480 by scale 0.48
Starting CUPS print
Document transferred to printer
Document transferred to printer
Printed to TSP
==> Der Druckauftrag erscheint kurzzeitig in der Druck-Übersicht, verschwindet dann wieder. Der Druck wird jedoch nicht ausgeführt.
9. Dem Log-File unter "//var/log/cups/error_log" kann ich außer einem "HTTP_STATE_WAITING Closing for error 32 (Broken pipe)" gefolgt von "Closing connection" keine weitere Infos entnehmen.
10. Trotz der erfolgreichen Drucke (siehe Punk 4 und 7) scheint weiterhin ein Treiber-Problem vorzuliegen. Die Javaprinter/CUPS-Drucke über den Kyocera oder Epson funktionieren ohne Probleme.
==> Der STAR-Drucker dient nun als Ersatzgerät für den Windows-Printserver. Der Epson funktioniert wie erwähnt problemlos.
Gruß Frank