Главная страница | назад





Article #15914: Determining if a given printer is capable of printing a PostScript file

 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