Home » Tipps & Tricks » Netzwerk/Internet » Browser » TWebBrowser ausdrucken

TWebBrowser ausdrucken

Folgende Procedure druckt den Inhalt eines TWebbrowsers aus. Als Parameter muss die TWebbrowser-Instanz übergeben werden.

procedure PrintWebBrowser(WB: TWebBrowser);
var
OleCommandTarget: IOleCommandTarget;
Command: TOleCmd;
Success: HResult;
begin
if not Assigned(WB) then
  Exit;

if not Assigned(WB.Document) then
  Exit;

// Referenz auf IOleCommandTarget besorgen
WB.Document.QueryInterface(IOleCommandTarget, OleCommandTarget);

// Prüfen, ob Drucken momentan erlaubt
Command.cmdID:= OLECMDID_PRINT;
if OleCommandTarget.QueryStatus(nil, 1, @Command, nil)  S_OK then
begin
  ShowMessage('Drucken nicht möglich');
  Exit;
end;

if (Command.cmdf and OLECMDF_ENABLED)  0 then
begin
  // Drucken ausführen
  Success:= OleCommandTarget.Exec(nil, OLECMDID_PRINT,
    OLECMDEXECOPT_PROMPTUSER, EmptyParam, EmptyParam);
  case Success of
    S_OK: ; // Alles OK
    OLECMDERR_E_CANCELED: ShowMessage('Abbruch durch User');
    else ShowMessage('Fehler!!!');
  end;
end
else
begin
  // Drucken momentan nicht erlaubt
  ShowMessage('Drucken nicht möglich');
  Exit;
end;
end;

In diesem Fall wird der Druck-Konfigurationsdialog angezeigt. Dies wird über den Parameter OLECMDEXECOPT_PROMPTUSER gesteuert. Soll kein Dialog angezeigt werden, muss der Parameter den Wert OLECMDEXECOPT_DONTPROMPTUSER annehmen.Es müssen außerdem die Units „ActiveX“ und „SHDocVw_TLB“ eingebunden werden.