AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Epson TM-T70 USB Kassenschublade öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

Epson TM-T70 USB Kassenschublade öffnen

Ein Thema von Pet04 · begonnen am 21. Mär 2014 · letzter Beitrag vom 27. Mär 2014
Antwort Antwort
Seite 3 von 3     123   
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 26. Mär 2014, 09:20
Das ganze Programm kann ich hier nicht veröffentlichen.

Delphi-Quellcode:

function RawDataToPrinter(szPrinterName:PChar; lpData:PByte; dwCount:Word) : Boolean;
Var
   hPrinter : THandle;
   DocInfo : DOC_INFO_1;
   dwJob : Word;
   dwBytesWritten : Cardinal;
Begin
   Result:=False;
   if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then
     Exit;

   DocInfo.pDocName := 'RAWJOB';
   DocInfo.pOutputFile := NIL;
   DocInfo.pDatatype := 'RAW';

   dwJob := StartDocPrinter( hPrinter, 1, @DocInfo );
   if (dwJob = 0 ) Then begin
     ClosePrinter( hPrinter );
     Exit;
   end;


   if not StartPagePrinter( hPrinter ) then begin
     EndDocPrinter( hPrinter );
     ClosePrinter( hPrinter );
     Exit;
   end;


   if not WritePrinter( hPrinter, lpData, dwCount, dwBytesWritten ) then begin
     EndPagePrinter( hPrinter );
     EndDocPrinter( hPrinter );
     ClosePrinter( hPrinter );
     Exit;
   end;

   if not EndPagePrinter( hPrinter ) then begin
     EndDocPrinter( hPrinter );
     ClosePrinter( hPrinter );
     Exit;
   end;

   if not EndDocPrinter( hPrinter ) then begin
     ClosePrinter( hPrinter );
     Exit;
   end;

   ClosePrinter( hPrinter );

   Result:=dwBytesWritten = dwCount;
End;

function SwitchPrinter(const APrtName : string):string;
var
   Device,
     Driver,
     Port: array[0..255] of Char;
   DevMode: THandle;
begin
   with Printer do
   begin
     PrinterIndex := Printers.IndexOf(APrtName);
     GetPrinter(Device, Driver, Port, DevMode);
     SetPrinter(Device, Driver, Port, 0);
     result:=Printers[printerindex];
   end;
end;
procedure Tfrmmain.opendrawer(nr:integer); // Muss keine Methode sein, einfache Procedure geht auch
Var
    FH:THandle;
    Buff: array[0..5] of char;
    RetW:DWORD;
    port:string;
    cmd:string;
    acmd:ansistring;
    p:pansichar;
begin
   // Anderer Code
   acmd:=#27#112#48#250#250;
   if dm.steuertext='Epson2then // 2. Schubladenanschluss dm.steuertext kann man durch Konstante ersetzen
   acmd:=#27#112#49#250#250;
   p:=AnsiStrAlloc(length(acmd));
   p:=StrPCopy(p,acmd);
   switchprinter(dm.Steuertextdrucker); //Druckername, so wie er in Windows angezeigt wird
   rawdatatoprinter(pwidechar(dm.Steuertextdrucker),pbyte(p),length(acmd));
end;
Einfach die Kommentare beachten und ein bischen umschreiben
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#22

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 26. Mär 2014, 14:05
Delphi-Quellcode:
 procedure TForm4.opendrawer(); // Muss keine Methode sein, einfache Procedure geht auch
 //procedure TForm4.opendrawer(nr:integer); // Muss keine Methode sein, einfache Procedure geht auch
Var
     FH:THandle;
     Buff: array[0..5] of char;
     RetW:DWORD;
     port:string;
     cmd:string;
     acmd:ansistring;
     p:pansichar;
 begin
    // Anderer Code
    acmd:=#27#112#48#100#100;
   // if dm.steuertext='Epson2' then // 2. Schubladenanschluss dm.steuertext kann man durch Konstante ersetzen
   // acmd:=#27#112#49#250#250;
    p:=AnsiStrAlloc(length(acmd));
    p:=StrPCopy(p,acmd);
    switchprinter('EPSON TM-70'); //Druckername, so wie er in Windows angezeigt wird
    rawdatatoprinter(pwidechar('EPSON TM-70'),pbyte(p),length(acmd));
 end;
Habe den Code angepasst leider reagiert der Drucker überhaupt nicht.

in der funktion RawDataToPrinter sprigt er in exit.

if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then
Exit;

Muss ich vorher noch etwas beachten.
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 26. Mär 2014, 15:37
Ist der Drucker in Windows installiert?

Druck er Testseite oder aus Wordpad?
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#24

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 27. Mär 2014, 06:32
Ja, er ist installiert und druckt auch über wordpad.
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 27. Mär 2014, 09:00
Dann sollte es eigentlich gehen. Kann der Druckername falsch sein? Um da zu prüfen, kann man die Funktion Switchprinter benutzen. Ist der Druckername falsch, liefert diese den Namen des Standarddruckers zurück.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#26

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 27. Mär 2014, 11:02
Bei der function RawDataToPrinter springt er ins exit.


Delphi-Quellcode:
  if NOT OpenPrinter( szPrinterName, hPrinter, NIL ) then
      Exit;
Bei der SwitchPrinter Funktion wird der Epson angezeit.

Habe ich was vergessen ?
Muss ich den Printer noch extra "open"
Wenn ja wie ?
  Mit Zitat antworten Zitat
Pet04

Registriert seit: 26. Sep 2007
86 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#27

AW: Epson TM-T70 USB Kassenschublade öffnen

  Alt 27. Mär 2014, 13:05
Funktioniert doch !!!

Habe beim Druckernamen einen Buchstaben vergessen.

Wer lesen kann ist klar im Vorteil
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz