AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein cab Etikettendrucker Statusabfragen über USB
Thema durchsuchen
Ansicht
Themen-Optionen

cab Etikettendrucker Statusabfragen über USB

Ein Thema von Andidreas · begonnen am 24. Sep 2015 · letzter Beitrag vom 29. Sep 2015
 
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

cab Etikettendrucker Statusabfragen über USB

  Alt 24. Sep 2015, 13:36
Hallo zusammen,

wir verwenden in unserer Firma zum Druck von Etiketten (z.B. Versandkartonetiketten) Drucker der Firma cab.
In einem neuen Projekt haben wir die Drucker über USB angeschlossen.
Der Druck funktioniert wunderbar über die folgenden Funktion:

Delphi-Quellcode:
function fnPrintviaComputerPrinter(slPrinterCommands : TStrings; sPrintername, sDocumentName : String) : Boolean;

var
  hPrinter : THandle;
  kDocInfo : TDocInfo1;
  i : Integer;
  dwWritten : DWord;
  sRec : String;
  StringList : TStrings;

begin

  //Set Result
  Result := False;

  //Try with Printer from Function Call
  If Not WinSpool.OpenPrinter(PChar(sPrintername), hPrinter, nil) Then
  Begin
    //Try with Windows Default Printer
    Printer.PrinterIndex := -1;
     If Not WinSpool.OpenPrinter(PChar(Printer.Printers[Printer.PrinterIndex]), hPrinter, nil) Then Exit;
  End;

  //Spool Output Settings
  Try
    With kDocInfo Do
    Begin
      pDocName := PChar(sDocumentName);
      pOutputFile := nil;
      pDatatype := 'RAW';
      //pDatatype := 'TEXT'; --> only for FreePDF
    End;

    //Send Printer Commands to the Printer
    If (StartDocPrinter(hPrinter,1,@kDocInfo) = 0) Then Abort;
    Try
      For i := 0 to slPrinterCommands.Count -1 do
      Begin
        sRec := slPrinterCommands.Strings[i] + #13+#10;
        Result := WritePrinter(hPrinter,PAnsiChar(AnsiString(sRec)),Length(sRec),dwWritten);
        If Not Result Then Abort;
      End;
      Result := true;
    Finally
      EndPagePrinter(hPrinter);
    End;

  Finally
    EndDocPrinter(hPrinter);
    WinSpool.ClosePrinter(hPrinter);
  end;

  //Set Result
  Result := True;

end;
Nachdem Druck muss jetzt aber noch der Status des Druckers abgefragt werden.
Lt. Hersteller gibt es hierfür sogenannte ESC Kommandos...
Ein ESC Kommande sollte mir in einem String den genauen Status zurückgeben...

Aber wie kann ich über den USB Port diese Daten empfangen bzw. erhalten? Ich bin hier etwas ratlos wie ich das Thema angehen soll da ich sowas noch nie gemacht habe, auch meine Suchen ham mir bisher nicht auf die Sprünge geholfen...
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
 


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 21:02 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