| |
| Determining if a given printer is capable of printing a PostScript file |
 |
Q) How can I determine if a given printer is capable of printing a PostScript file?
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 TForm .Button Click(Sender: TObject);
begin
if PrintDialog .Execute then
if IsPostScriptPrinter(Printer.Handle) then
ShowMessage('This is a Postscript Printer') else
ShowMessage('This is not a Postscript Printer');
end;
|
|
| Hits/month |
2,500,000+ |
Downloads (Since May 2000) |
7,393,709 |
| Total Files |
6,023 |
| Forum msgs |
7,670 |
| Articles/FAQs |
70+/900+ |
Top Selling Software at Amazon
|