Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

Re: Spezielle Druckereigenschaften auslesen

  Alt 9. Mär 2008, 11:53
Hallo

Probiere mal den Code von Joe C. Hecht:
Delphi-Quellcode:
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;
Thomas
  Mit Zitat antworten Zitat