Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: automatische Druckerauswahl funktioniert nicht immer

  Alt 28. Sep 2005, 23:41
Hi,

ich habe eine ähnliche Vorlage gefunden wie shmia (von Peter Below, Team B) und abgewandelt :

Delphi-Quellcode:
procedure Drucke (st : string);
var
  BytesWritten: DWORD;
  hPrinter: THandle;
  DocInfo: TDocInfo1;
begin
  if not WinSpool.OpenPrinter(DruckerName, hPrinter, nil) then
    raise exception.create('Drucker nicht gefunden !');
  try
    DocInfo.pDocName := DruckerName; // von INI festgelegter Standard-Drucker
                                      // beeinflußt Win-Standarddrucker nicht !
    DocInfo.pOutputFile := Nil;
    DocInfo.pDatatype := 'RAW';
    if StartDocPrinter(hPrinter, 1, @DocInfo) = 0 then
      Abort;
    try
      if not StartPagePrinter(hPrinter) then
        Abort;
      try
        if not WritePrinter(hPrinter, @st[1], Length(st), BytesWritten)
        then
          Abort;
      finally
        EndPagePrinter(hPrinter);
      end;
    finally
      EndDocPrinter(hPrinter);
    end;
  finally
    WinSpool.ClosePrinter(hPrinter);
  end;
end;

procedure DruckLn (st : string);
begin
  Drucke (st+chr (10) + chr (13));
end;
Kann man das so verwenden ? Oder kann ich auch drucken, ohne dauernd diese Prozedur zu bemühen ? Gehen tut das schon so, auch mit Netzwerkdruckern.

Und dann noch das :
DocInfo.pDatatype := 'RAW'; Habe festgestellt, daß eine Änderung von "RAW" dazu führt, daß der Drucker nicht druckt. Außerdem vermisse ich die Hilfe dazu. Ist die eventuell im Win-SDK ?
Gruß
Hansa
  Mit Zitat antworten Zitat