Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Узнать, поддерживает ли принтер PostScript

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  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;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay