Einzelnen Beitrag anzeigen

Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Druckerbefehle direkt zum Drucker senden (Generic Text o

  Alt 4. Okt 2007, 15:29
Hallo,

der "generic - text only" treiber gehört zur Standardausstattung von Windows und ist im Druckerinstallations-Assistent in der Liste der Hersteller unter Standard zu finden.

zum Drucken:
Delphi-Quellcode:
uses
  WinSpool;


resourcestring
  rsNoPrinter='Ducker >%s< nicht gefunden!';


function DoDruckeScript(aScript:TStringList; const aDruckername:String):Bool;
var hPrinter:THandle;
    DocInfo :TDocInfo1;
    i :Integer;
    bWritten:DWord;
    s :String;
begin
  Result:=False;
  if not WinSpool.OpenPrinter(PChar(aDruckername), hPrinter, nil) then
    raise Exception.CreateFmt(rsNoPrinter, [aDruckername]);
  try
    with DocInfo do
    begin
      pDocName:='Dokument zum Drucken'; // <--
      pOutputFile:=nil;
      pDatatype:='RAW';
    end; // with DocInfo
    if (StartDocPrinter(hPrinter, 1, @DocInfo)=0) then Abort;
    try
      for i:=0 to aScript.Count-1 do
      begin
        s:=aScript.Strings[i];
        Result:=WritePrinter(hPrinter, PChar(s), Length(s), bWritten);
        if not Result then Abort;
      end; // for i
      Result:=True;
    finally
      EndPagePrinter(hPrinter);
    end; // try
  finally
    EndDocPrinter(hPrinter);
    WinSpool.ClosePrinter(hPrinter);
  end; // try
end; // DoDruckeScript
Das obige Beispiel funktioniert mit einem Zebra-Etikettendruckr ohne Probleme.
  Mit Zitat antworten Zitat