diff --git a/README.md b/README.md index f44e364..79dd6b5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,69 @@ # Elektronikecke-Labelgenerator +Dieses Repository enthält Skripte zum Erzeugen von Labels aus CSV-Exports von Part-DB. + +Diese Labels werden zur Beschriftung der Elektronikbauteile im ZAM verwendet. + +Die Skripte erzeugen ZPL-Code zur Verwendung mit dem Labeldrucker GK420t von Zebra. +Es werden zwei Labels pro Zeile mit je 48x24 mm erzeugt. + +Es gibt zwei Varianten, da es im ZAM Schubladen mit nur einem Bauteil und welche mit zwei Bauteilen gibt: +`mklabel_single.py` erzeugt zwei Labels mit je einem Bauteil (also zwei Bauteile pro gedruckter Seite) und `mklabel_dual` erzeugt zwei Labels mit je zwei Bauteilen (also vier Bauteile pro Seite). +Entsprechend viele Bauteile müssen in der CSV-Eingabe stehen, damit keine Plätze leer bleiben. + +## Vorbereitung + +Um die Skripte verwenden zu können, müssen die Abhängigkeiten installiert werden. +Am einfachsten geht das mit einer virtuellen Umgebung für Python: + +```bash +$ python3 -m venv env +$ source env/bin/activate +$ pip install -r requirements.txt +``` + +Der folgende Befehl muss vor dem ersten Aufruf der Skripte in der aktiven Shell ausgeführt werden: + +```bash +$ source env/bin/activate +``` + +## CSV-Export aus Part-DB + +Damit die Skripte funktionieren, müssen die Bauteile aus Part-DB wie folgt exportiert werden: + +1. Part-DB so navigieren/filtern, dass alle gewünschten Bauteile in einer Liste angezeigt werden. +2. Bei den Bauteilen, für die Labels gedruckt werden sollen, das Auswahlhäkchen setzen. +3. Über der Liste taucht dann neben „x Bauteile ausgewählt“ ein Auswahlfeld für die Aktion auf. Dort ist „Export als CSV“ zu wählen und rechts daneben „Vollständig“ als Datenformat. +4. Mit „Ok“ bestätigen und die Datei abspeichern. +5. Die Datei in einem Texteditor(!) öffnen und die Reihenfolge der Teile prüfen und ggf. korrigieren. Die Reihenfolge in der CSV-Datei bestimmt die Reihenfolge auf den Labels! + +## Erzeugen des ZPL-Codes + +Zum Erzeugen des ZPL-Codes wird das gewünschte Skript mit der CSV-Datei als Parameter aufgerufen, z.B. + +```bash +$ ./mklabel_single.py /tmp/export_Part_full.csv +``` + +Das Skript verarbeitet alle Bauteile aus der CSV-Datei und gibt eine Zeile ZPL-Code pro „Seite“ (eine Zeile an Labels) aus. +Die Ausgabe des obigen Befehls mit vier Bauteilen kann beispielsweise so aussehen: + +``` +^XA^PW800^LL192^FO24,48^BQN,2,3,L,7^FDLA,http://partdb.im.zam.haus/scan/part/2^FS^FO24,160^A0N,32,32^FB360,1,0,L,0^FDID: 2^FS^FO144,56^A0N,32,32^FB240,4,0,L,0^FD74AC00PC^FS^FO424,48^BQN,2,3,L,7^FDLA,http://partdb.im.zam.haus/scan/part/236^FS^FO424,160^A0N,32,32^FB360,1,0,L,0^FDID: 236^FS^FO544,56^A0N,32,32^FB240,4,0,L,0^FD74ABT240DB,118^FS^XZ +^XA^PW800^LL192^FO24,48^BQN,2,3,L,7^FDLA,http://partdb.im.zam.haus/scan/part/262^FS^FO24,160^A0N,32,32^FB360,1,0,L,0^FDID: 262^FS^FO144,56^A0N,32,32^FB240,4,0,L,0^FD74AC02PC^FS^FO424,48^BQN,2,3,L,7^FDLA,http://partdb.im.zam.haus/scan/part/272^FS^FO424,160^A0N,32,32^FB360,1,0,L,0^FDID: 272^FS^FO544,56^A0N,32,32^FB240,4,0,L,0^FD74AC109PC^FS^XZ +``` + +Um das Layout zu überprüfen, kann eine Zeile ZPL-Code auf [labelary.com](https://labelary.com/viewer.html) in einem Online-Viewer gerendert werden. + +## Senden des Codes an den Drucker + +_Dieser Abschnitt beschreibt das Drucken mit Linux. Zum Drucken mit anderen Systemen gibt es bisher keine Erfahrung._ + +Zum Drucken muss einmalig der Drucker in CUPS eingerichtet werden. Dort ist als Treiber _Zebra ZPL Label Printer_ zu wählen. Es gibt dazu von Zebra eine [ausführliche Anleitung](https://www.zebra.com/content/dam/support-dam/en/documentation/unrestricted/guide/software/ZSN108111-v4_CUPS_Installation.pdf). + +Ist der Treiber installiert, können Labels wie folgt gedruckt werden (Achtung: bitte vorher mit Einzelseiten testen): + +```bash +$ ./mklabel_single.py /tmp/export_Part_full.csv | lpr -o raw -P Zebra_GK420t - +```