Question and Answer Database FAQ914D.txt — Determining if a given printer is capable of printing a PostScript file Category :Printing Platform :All-32Bit Product : Question: Q) How can I determine if a given printer is capable of printing a PostScript file? Answer: A) The following code demonstrates how to determine if a given printer supports the Adobe PostScript page description language. Example: uses Printers; function IsPostScriptPrinter(dc : hdc) : bool; var TestInt : integer; a : array[0..255] of char; err : integer; s : string; begin Result := false; TestInt := GETTECHNOLOGY; {$IFDEF WIN32} if ExtEscape(Dc, QUERYESCSUPPORT, sizeof(TestInt), @TestInt, 0, Nil)> 0 then begin Err := ExtEscape(Dc, GETTECHNOLOGY, 0, nil, 256, @a); {$ELSE} if Escape(Dc, QUERYESCSUPPORT, sizeof(TestInt), @TestInt, Nil)> 0 then begin Err := Escape(Dc, GetTechnology, 0, nil, @a); {$ENDIF} if Err> 0 then begin s := UpperCase(StrPas(a)); if Pos('POSTSCRIPT', s)> 0 then result := true; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if PrintDialog1.Execute then if IsPostScriptPrinter(Printer.Handle) then ShowMessage('This is a Postscript Printer') else ShowMessage('This is not a Postscript Printer'); end; 4/2/99 11:21:29 AM
Last Modified: 01-SEP-99