Autor Beitrag
Conny Drexler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44


D6 prof. win xp
BeitragVerfasst: Mi 05.03.03 12:59 
Ich habe wieder einmal ein Problem mit meinem Bondrucker von Epson. Im Turbo Pascal war es ganz einfach eine ESC Sequenz an den Drucker zu senden (einfach winen writeln(lst + sequenz), damit die Schublade aufgeht. Mache ich das gleiche unter Delphi, bekomme ich nur imme wirre zeichen ausgedruckt. (von ASCII auf ANSI hab ich schon convertiert). Der Suport von Epson hat folgendes mitgeteilt:


"Der Befehl zum Offnen der Kassenschublade lautet "ESC p m t1 t2". Dieser Befehl entspricht z. B. in hexadezimaler Schreibweise 1B 70 00 70 70, in dezimaler Schreibweise 27 112 30 112 112. Mit m = hex. 00 bzw. dez. 30 wird die Kassenschublade uber die Kontakte 2 und 4 des Steckverbinders angesteuert, mit m = hex. 01 bzw. dez. 31 erfolgt die Ansteuerung uber die Kontakte 5 und 4. Der Parameter t1 steht fur die Impulslange, der Parameter t2 fur die Impulspause, dabei ist zu berucksichtigen dass t2 nicht kleiner t1 sein darf.

Der Drucker erwartet den Befehl in hexadezimalen Werten, dass heisst,
das Programm muss die wie auch immer geartete Eingabe in hexadezimale Werte umwandel und zum Drucker schicken, unabhangig von ASCII oder ANSI."

Kann mir jemand sagen, wie ich die zeichen an den Drucker sende, damit meine Schublade aufgeht?????

Conny
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Mi 05.03.03 14:09 
Mit welcher Komponente arbeitest Du?

Ich habe mal ein ähnliches Problem gehabt. Suche mal nach "TMS Async32"...
Allerdings muss man Teilw. etwas mit den RS Einstellungen (7-Bit, 8-Bit, RX...)herumexperimentieren, bis die Kasse richtig antwortet... wenn sie es dann einmal Tut macht das Arbeiten auch wieder spass ;)
Brueggendiek
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Do 06.03.03 13:14 
Hallo Conny!

Das Problem liegt wohl weniger an Delphi, als an Windows.

Unter DOS gab es Drucker. Die bekamen Buchstaben und setzten sie dann in Papierfärbungen um. Eine Norm für die Ansteuerung war ESC/P (Epson Standard Code for Printers).
Bei Windows wird normalerweise nicht gedruckt! Die "Druck"-Routinen der Programme setzen das Ganze in eine Bitmap um und die "Drucker"-Treiber schicken das dann zu den sogenannten Druckern, die aber in Wirklichkeit Plotter (Zeichengeräte) sind. Bedeutet für eine A4-Seite in Farbe dann nur ca. 4MByte Druckausgabe für etwa 2000 Buchstaben!

Es sollte im Druckertreiber die Möglichkeit geben, einzustellen, daß die Duckerschriftarten verwendet werden sollen. Dann sollte es auch mit den ESC/P-Sequenzen z.B. für die Kassenschublade funktionieren.

Übrigens: Klappt der Bondruck oder geht das auch nicht?
Ein nicht funktionierender Textdruck weist mit Sicherheit auf ein Treiberproblem hin.

Wenn es nicht anders geht, muß ggf. die Schnittstelle direkt angesteuert werden - klappt aber nur unter DOS-Windows (also 95, 98, ME), nicht unter richtigem Windows (NT, 2000, XP). Es soll aber für NT und Co. auch Möglichkeiten geben, das zu umgehen. Oder man schreibt einen Treiber selber, geht aber nicht mit Delphi.

Gruß

Dietmar Brüggendiek
Conny Drexler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44


D6 prof. win xp
BeitragVerfasst: Do 13.03.03 17:51 
Leider gibt es im Druckertreiber keine Möglichkeit, nur bestimmte Schriftarten einzustellen.
Was mache ich jetzt????? :(
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Do 13.03.03 17:56 
Ich habe bei einem Bondrucker (Thermodrucker) einfach eine Bitmap gezeichnet und zum Drucker gesendet...
Conny Drexler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44


D6 prof. win xp
BeitragVerfasst: Do 13.03.03 18:33 
Was hat denn das senden einer bitmap mit meinem problem zu tun bitteschön??? Krieg ich damit meine Kassenschublade auf???
matt
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.06.03 09:30 
Hallo Conny,

das Problem liegt meiner Meinung nach in der Konvertierung von hex nach dez:

1B 70 00 70 70 hex = 27 112 30 112 112 dez

Warum wird aus 00hex 30dez? Null ist null und bleibt null, egal ob hex oder dez. Da ist wohl was durcheinander geraten. Richtig wäre:

1B 70 30 70 70 hex = 27 112 48 112 112 dez

Das funktioniert, hab's grade ausprobiert. :D

PS
Als Hersteller von elektronischen Registrierkassen haben wir jeden Tag mit solchen Druckern und Kassenladen zu tun.