![]() |
Sequenz an Drucker schicken
hallo!
bitte um hilfe. ich habe einen Epson-Bondrucker und eine Kassenlade dazu. Mit einer bestimmten Sequenz kann ich die Kassenlade nach dem Drucken eines Dokumentes auf den Bondrucker öffnen. Ich arbeite mit der Unit Printers, habe aber leider nicht herausgefunden, wo ich eine solche Sequenz zuweisen kann. Hat jemand vielleicht ein Idee? Danke |
Hallo RedCurlyTammy,
ich habe einmal einen Etikettendrucker programmieren müssen. Dazu habe ich die Daten und Steuerzeichen in eine Datei geschrieben und diese mit Copy an den Drucker "prn:" geschickt. |
Hallo MrSpock!
hast keine Idee wie ich das mit printers lösen kann? ich hab nämlich schon ein schönes druckprogramm und hab gedacht, daß ich das da einfach einbauen kann. |
Hallo und herzlich Willkommen im Forum!
Ich habe den Thread nach Sonstiges verschoben. Die Sparte "Neuen Beitrag zur Code-Library hinzufügen" ist nur für Beiträge die in der Library aufgenommen werden sollen. Grüsse, Daniel :hi: |
Re: Sequenz an Drucker schicken
Hallo,
ich habe das gleiche Problem. Bin aber schon ein ganzes Stück weiter. Der Drucker muß mit einer Escape Sequenz dazu gebracht werden, die Lade zu öffnen. zB. #27, #110, #0, #50 #50 Das ist die Ansteuerung für die meisten Bondrucker um die Lade zu öffnen. Jedoch muß der Drucker direkt angesteuert werden. Das weiß ich allerdings auch nicht wie das geht. Vielleicht kann uns da einer weiterhelfen. |
Re: Sequenz an Drucker schicken
Code-Library:
![]() |
Re: Sequenz an Drucker schicken
Hallo,
hier noch eine minimalistische Alternative:
Delphi-Quellcode:
Grüße vom marabu
function PrintEsc(const data: string): Boolean;
var pd: PChar; begin Printer.BeginDoc; pd := PChar(Data); Dec(PInteger(pd)); if Length(data) = PInteger(pd)^ then Result := Windows.Escape(Printer.Handle, PASSTHROUGH, 0, pd, nil) <> 0 else Result := False; Printer.EndDoc; end; |
Re: Sequenz an Drucker schicken
Bei Epson Bon Druckern gibt es einen spez. Font für die Übermittlung dieser Befehle
Delphi-Quellcode:
Uwe
printer.Canvas.Font.Name:='control';
printer.Canvas.Font.Size:=10; // Bon abschneiden printer.Canvas.TextOut(0,0,'P'); // Kassenlade öffnen printer.Canvas.TextOut(0,0,'A'); |
Re: Sequenz an Drucker schicken
Hallo,
Absolut perfekt mit den Fonts. So Funktioniert es !!! :firejump: :bounce2: :bounce1: :bouncing4: :dancer: :dancer2: |
Sequenz an Drucker schicken
Hallo,
ich habe nach diesem Tipp versucht so ein Cut an einen Epson zu schicken. Mit dem Ergebnis,dass dieser ein "P" ausdruckt. Hinzu kommt dass ich den Ausdruck vorher an einen Quickreport schicke. Kann man dies an das "Afterprint"Ereignis des Reports schicken? Grüße |
Re: Sequenz an Drucker schicken
So sieht meine procedure aus
Es wird allerdings immer nur das "P" gedruckt Was ist falsch??? *kurzvormverzweifelnbin* Übergabe: PrintCut('control','P',10);
Delphi-Quellcode:
procedure PrintCut(fontname,fontstring: String; fheight:Integer);
var Font: String; FontHeight:Integer; begin Font := fontname; FontHeight := fheight; Printer.PrinterIndex := Printer.Printers.IndexOf(report.form1.analysedrucker); Printer.BeginDoc; printer.Canvas.Font.Name:=font; printer.Canvas.Font.Size:=FontHeight; printer.Canvas.TextOut(0,0,fontstring); Printer.EndDoc; end; |
Re: Sequenz an Drucker schicken
Bei Epson habe ich eben dieses Basic-Beispiel gefunden:
PRINT #1, CHR$(&H1D);"V";CHR$(66);CHR$(0); 'Feeds paper & cut Nur kann ich damit nichts anfangen. chr(66) ist doch ein B. Hätte jemand eine Idee? |
Re: Sequenz an Drucker schicken
Ne, kein B. Das ist Hex, also 16x6+6. Davon der Ascii wert.
|
Re: Sequenz an Drucker schicken
es ist zum verzweifeln...
Hab jetzt ne Mail an Epson geschickt kommt sowieso keine Antwort aber Versuch macht kluch |
Re: Sequenz an Drucker schicken
Schicke nicht unnötige Mails. Die werden dasselbe sagen wie ich. :mrgreen: Die Sequenz für Papierabschneider lautet (jetzt aber dezimal !!). 29 86 1 Ob das geht hängt aber auch davon ab, wie die Dip-Schalter eingestellt sind (Emulation) !! Die 29 ist KEIN Schreibfehler !!
|
Re: Sequenz an Drucker schicken
Das lustige daran ist,
wenn ich vom Report vorher ein Preview mache und von dort drucke,schneidet der Drucker. Da es ja schliesslich im Treiber so eingestellt wurde. Nur direkt mit Print geht das nicht. Wie soll ich deine Sequenz denn schicken? |
Re: Sequenz an Drucker schicken
Die drei Zeichen müssen irgendwie direkt zum Drucker. Notfalls per Textfile.
|
Re: Sequenz an Drucker schicken
Ja, es gab ne Menge Usertipps
vertreut im Netz. Es funktioniert sogar, wenn man ein Label am Ende des Reports mit der entsprechenden Formatierung setzt. In meinem Fall hat Seiko-Epson weitergeholfen mit einem aktualisierten Treiber. Erst dieser sprach per Steuerzeichen den PartialCut korrekt an. Dank an alle! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz