Home » Tipps & Tricks » Netzwerk/Internet » HTML » HTML-Dokument aus einer Anwendung drucken

HTML-Dokument aus einer Anwendung drucken

Die Verwendung des Internet Explorer 5 macht diese Aufgabe ziemlich einfach, setzt allerdings etwas Arbeit voraus. Angenommen du willst, dass dein Programm HTML-Dokumente ausdrucken kann – entweder direkt aus dem Internet oder aus einer Datei. Das Hauptproblem dabei ist, dass die TWebBrowser-Komponente keine Print-Methode anbietet. Wenn du jemals einen Blick in de MSHTML.pas geworfen hast, wirst du bemerkt haben, dass IHTMLWindow3 eine Print-Methode besitzt, die wir aufrufen können – der einzige Trick ist, ein IHTML-Window3-Interface von TWebBrowser zu erhalten. Das kann durch die Verwendung von TWebBrowser (muss nicht sichtbar sein) geschehen, indem WebBrowser.Navigate aufgerufen wird, um zu der zu druckenden Seite zu gelangen. Das Drucken wird im NavigateComplete-Ereignis erledigt.

procedure TForm1.WebBrowser_V1NavigateComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var HTMLDoc: IHTMLDocument2;
  HTMLWnd: IHTMLWindow2;
  HTMLWindow3: IHTMLWindow3;
begin
  HTMLDoc := (Sender as TWebBrowser).Document as IHTMLDocument2;
  if HTMLDoc = nil then
    raise Exception.Create('Couldn''t convert the WebBrowser to an IHTMLDocument2');
  HTMLWnd := HTMLDoc.parentWindow;
  HTMLWindow3 := HTMLWnd as IHTMLWindow3;
  // Finally, we get to the print method
  HTMLWindow3.print;
end;