AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zebra Drucker Etiketten Variablen

Ein Thema von Graw · begonnen am 4. Sep 2018 · letzter Beitrag vom 4. Apr 2019
 
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#20

AW: Zebra Drucker Etiketten Variablen

  Alt 7. Sep 2018, 09:16
Hmm..

Wieso der Umweg über LPT....

Den Drucker ganz normal unter Windows installieren!

Und dann reicht folgendes, um jedes Script (kann ZPL, EPL oder anderes RAW-Script sein!) direkt programmtechnisch an den Drucker zu schicken:

Delphi-Quellcode:
uses
  WinSpool, Printers;

function SendRAWData(RAWData: AnsiString; Port : Ansistring):boolean;
var
  dwCount : DWORD;
  hPrinter : THandle;
  DocInfo : TDocInfo1A;
  dwJOB : DWORD;
  dwBytesWritten : DWORD;
begin
  result:=false;
  dwCount := Length(RAWData);
  if OpenPrinterA(PAnsiChar(Port), hPrinter, Nil) then begin
    try
      DocInfo.pDocName := 'RAWPrint';
      DocInfo.pOutputFile := Nil;
      DocInfo.pDatatype := 'RAW';
      dwJob := StartDocPrinterA(hPrinter, 1, @docInfo);
      if dwJob <> 0 then
        try
          if StartPagePrinter(hPrinter) then
            try
              if WritePrinter(hPrinter, PAnsichar(RAWData), dwCount, dwBytesWritten) then
                if dwBytesWritten <> dwCount then
                  raise Exception.Create('Übertragungsprobleme mit '+Port+'!')
                else result:=true;
            finally
              EndPagePrinter(hPrinter)
            end
        finally
          EndDocPrinter(hPrinter);
        end
    finally
      ClosePrinter(hPrinter)
    end;
  end else raise Exception.Create('Drucker '+Port+' nicht zur Verfügung!');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Port : string;
  Data : string;
begin
  if PrintDialog1.Execute then begin
    Port := Printer.Printers[Printer.PrinterIndex];
    Data := 'DIES IST DAS ASCII-SCRIPT';
    SendRAWData(Data,Port);
  end;
end;
(Ist nicht optimiert und verwendet nur ASCII (ANSI), was aber OK ist, da die meisten Scriptfähigen Drucker nicht Unicode per Script können!)

Es ist hierbei egal, ob der Drucker per USB/LPT/Netzwerk oder wie auch immer angeschlossen ist.

(Den Printdialog habe nur als Beispiel verwendet, der Drucker kann auch schon vorher selektiert/gespeichert worden sein.)

Edit:
Kann sogar auf normalen z.B. Laserdrucker verwendet werden, um direkt Text zu drucken.

Geändert von HolgerX ( 7. Sep 2018 um 09:36 Uhr)
  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 17:17 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