Brauche Hilfe bei Programm zum Drucken

Hallo,
Ich verzweilfle gerade an folgendem Problem und hoffe ihr könnt mir ein paar Tips gehen wie und mit was (Programmiersprache oder ähnliches ) sich dieses Problem lösen lässt. Ich habe ein paar Grundkenntnisse in Java, Pascal und Visual Basic. Vieleicht lässt sich das aber auch mit einer Batch Datei machen?

Ich habe eine Tastatur in die man bestimmte Chipkarten einschieben kann. Auf den Chipkarten sind personenbezogene Daten gespeichert. Nun soll ich eine Anwendung schreiben, die es möglich macht das der Anwender nur die Chipkarte in den Slot steckt und der Drukcer automatisch 7 Etiketten mit Vorname, Nachnahme und Geburtsdatum ausdruckt. Der Drucker ist ein spezieller Etiketten Drucker „Zebra T402“, bei der Tastatur handelt es sich um eine „Cherry G80-1501“. Die Daten von der Chipkarte werden beim Ausführen einer Exe-Datei in eine dat Datei im Windows Temp Ordner geschrieben.

Mfg,
yuna

Hallo,
Ich habe eine Tastatur in die man bestimmte Chipkarten
einschieben kann. Auf den Chipkarten sind personenbezogene
Daten gespeichert. Nun soll ich eine Anwendung schreiben, die
es möglich macht das der Anwender nur die Chipkarte in den
Slot steckt und der Drukcer automatisch 7 Etiketten mit
Vorname, Nachnahme und Geburtsdatum ausdruckt. Der Drucker ist
ein spezieller Etiketten Drucker „Zebra T402“, bei der
Tastatur handelt es sich um eine „Cherry G80-1501“. Die Daten
von der Chipkarte werden beim Ausführen einer Exe-Datei in
eine dat Datei im Windows Temp Ordner geschrieben.

Mfg,
yuna

Hallo Yuna

Ein bischen kompliziert scheint es zu sein, aber keinesfalls unlösbar.

Ein Etikettendrucker kann entweder ein Lineprinter sein, dann erscheint er nicht als Windows-Drucker bzw. Printer-Objekt, sondern ist nur über Ausgaben des betreffenden I/O-Ports zugänglich.

Ist der Drucker ein Windows-Drucker, brauchst Du nur den Treiber und der Drucker sollte als Printer-Objekt erscheinen. In diesem Falle ist die Ansteuerung des Druckers genauso wie beim normalen Drucker, nur das die Parameter bzw. Maße anders sind.
Ich selber könnte diesen Drucker mit Visual Basic oder auch mit einem DOS Programm(wenn es ein Line-Printer ist) ansteuern.

Ein letztes Problem:
Wie wird das *.exe File und dann das Druckprogramm gestartet?
Hier würde ich versuchen, ein Signal der Tastatur beim reinschieben der Karte zu erkennen, und dann ein Programm nach dem anderen starten, bzw. das eine aus dem anderen heraus starten. Mit einem DOS-Programm mit Fokus kann man relativ leicht ein solches Ereignis erkennen; wie es mit VB geht, kann ich im Augenblick nicht sagen. Eventuell gibt es sogar ein Keydown oder Keyup-Ereignis, einfach ausprobieren.
Falls natürlich eine Dokumentation der Hardware besteht, umso besser.
MfG
Matthias

Hallo Matthias,

Danke für Deine Antwort. Der Drucker ist ein Windows-Drucker. Das korrekte Drucken (Die Daten sollen mit ausreichendem Abstand linksbündig auf dem Ettiket stehen) aus z.B Visual Basic ist trotzdem nicht ganz einfach. Die Eigenschaften „ScaleLeft“, „ScaleTop“ und „CurrentX“, „CurrentY“ und sonstige Druckereigenschaften scheinen bei diesem Drucker nicht zu funktionieren.

Ich denke für den Anfang ist es wirklich zu komliziert, das Prgramm vollautomatisch (d.h der Benutzer muss nur die Karte einschieben) ablaufen zu lassen. Für den Anfang würde auch ein Deskop-Symbol auf das der Benutzer klickt nachdem er sein Karte eingeschoben hat ausreichen. Weißt Du wie man die exe Datei aus VB startet?

Da ich im Programmieren wie gesagt nur sehr wenige Kenntnisse habe und erst mal ein paar Bücher wälzen müsste bevor ich anfange habe ich noch die Frage welche Prgrammiersprache du mir empfehlen könntest für dieses Progrämmchen zu lernen. VB oder Java?

Mfg,
yuna

Hallo Matthias,

Danke für Deine Antwort. Der Drucker ist ein Windows-Drucker.
Das korrekte Drucken (Die Daten sollen mit ausreichendem
Abstand linksbündig auf dem Ettiket stehen) aus z.B Visual
Basic ist trotzdem nicht ganz einfach. Die Eigenschaften
„ScaleLeft“, „ScaleTop“ und „CurrentX“, „CurrentY“ und
sonstige Druckereigenschaften scheinen bei diesem Drucker
nicht zu funktionieren.

Hallo Yuni
Dann mußt Du einfach ausprobieren, welche Eigenschaften zur Verfügung stehen und diese dann verwenden.
Zum Beispiel Leerzeichen statt ScaleLeft.
Wenn eine Adresse schön sauber auf dem Etikett nach dem anderen gedruckt wird, ist es dann glaub ich ok.
Vielleicht verhält sich der Drucker wie ein Lineprinter trotz Windowstreiber. Es gibt auch API-Calls, mit denen man die Fähigkeiten des Treibers abfragen kann.

Ich denke für den Anfang ist es wirklich zu komliziert, das
Prgramm vollautomatisch (d.h der Benutzer muss nur die Karte
einschieben) ablaufen zu lassen. Für den Anfang würde auch ein
Deskop-Symbol auf das der Benutzer klickt nachdem er sein
Karte eingeschoben hat ausreichen. Weißt Du wie man die exe
Datei aus VB startet?

Da kann man schon den „Shell“ Befehl nehmen. Ich kenne nur das Arbeiten mit der VB5 IDE und etwas vbscript , da schau ich einfach nur kurz nach, wies geht.

Da ich im Programmieren wie gesagt nur sehr wenige Kenntnisse
habe und erst mal ein paar Bücher wälzen müsste bevor ich
anfange habe ich noch die Frage welche Prgrammiersprache du
mir empfehlen könntest für dieses Progrämmchen zu lernen. VB
oder Java?

Anscheinend kennst Du beide Sprachen. Dann nimm doch die Sprache, bei der Du die besseren Kenntnisse hast, oder die bessere Hilfe, bzw. IDE.
In anderen Worten, Du hast freie Wahl.

Mfg,
yuna

MfG Matthias

Hallo,

für Deinen Drucker gibt es eine Druckersprache:

EPL bzw. ZPL

Dabei handelt es sich um eine Scriptsprache, mit der Du direkt, im sogenannten Passhrough Modus auf die Druckerschittstelle drucken kannst. Alle Einstellungen, Schriftgröße, Ausrichtung etc. kannst Du ohne Druckertreiber per Kommando an den Drucker schicken.

Hier

http://www.zebra.com/id/zebra/na/en/index.html

findest Du die Doku zur EPL / ZPL. Gebe in der Suchbox einfach ZPL ein.

Wenn Du über einen Windows Druckertreiber gehen willst, verwendest Du ambesten den ZUD (Zebra Universal Driver), der lässt auch den Passthrough Modus zu und kann Druckerbefehle durchreichen.

Über einen Timer Deiner neuen Anwendung kannst Du zyklisch abfragen ob Daten vorhanden sind und daraus über ZPL einen Druckauftrag generieren.

Gruß Andreas