{
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) dobegin
res := ExtEscape(printer.Handle,
QUERYESCSUPPORT,
sizeof(Escapes[0]),
@Escapes[i], 0, nil);
if res <> 0 thenbegin
Result := true;
Break;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
boolstr: array[Boolean] ofstring = (" not", "");
var
i: Integer;
S: string;
beginfor i := 0 to Printer.Printers.Count - 1 dobegin
Printer.PrinterIndex := i;
memo1.Lines.add(
Format("Printer %s does%s support Postscript",
[printer.printers[printer.printerindex],
boolstr[PrinterSupportsPostscript]]));
end;
end;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Узнать, поддерживает ли принтер PostScript", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!