| 
   
    | ...überprüfen, ob ein Drucker PostScript unterstützt? |   
    | Autor: |  | [ Tip ausdrucken ] |  |  |  
 
 
{That is really difficult do to if it has to work on all Windows
 platforms. The best way (no kidding) may be to ask the user which
 printer to use. What platforms do you need to support? If it is only
 Win2K (and perhaps XP) one may be able to use this (i have no
 postscript-enabled printer around to see if it works!):
 }
 
 uses
 WinSpool, Printers;
 
 {: Check if the currently selected printer supports postscript.
 Only applicable on Win2K/XP! }
 
 function PrinterSupportsPostscript: Boolean;
 const
 POSTSCRIPT_PASSTHROUGH = 4115;
 POSTSCRIPT_IDENTIFY = 4117;
 
 Escapes: array[0..2] of Cardinal =
 (POSTSCRIPT_DATA, POSTSCRIPT_IDENTIFY, POSTSCRIPT_PASSTHROUGH);
 var
 res: Integer;
 i: Integer;
 begin
 Result := false;
 for i := Low(Escapes) to High(Escapes) do begin
 res := ExtEscape(printer.Handle,
 QUERYESCSUPPORT,
 sizeof(Escapes[0]),
 @Escapes[i], 0, nil);
 if res <> 0 then begin
 Result := true;
 Break;
 end;
 end;
 end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 const
 boolstr: array[Boolean] of string = (' not', '');
 var
 i: Integer;
 S: string;
 begin
 for i := 0 to Printer.Printers.Count - 1 do begin
 Printer.PrinterIndex := i;
 memo1.Lines.add(
 Format('Printer %s does%s support Postscript',
 [printer.printers[printer.printerindex],
 boolstr[PrinterSupportsPostscript]]));
 end;
 end;
 
 
 
   
   
    | 
         
          | Bewerten Sie diesen Tipp: |  |  |