Imprimir el documento

2359 vistas

Para imprimir un documento con Internet Explorer 4 o superior tendremos que usar la propiedad ControlInterface para acceder a la interfaz del componente WebBrowser (esta interfaz permite a un controlador Automation acceder a propiedades, métodos y eventos del navegador Web).

En el ejemplo, la impresión del documento completo se enviará sin que aparezca el cuadro de diálogo de impresión. Para mostrar el cuadro de diálogo tendremos que reemplazar OLECMDEXECOPT_DONTPROMPTUSER por OLECMDEXECOPT_PROMPTUSER



delphi
  1. var
  2.   vaIn, vaOut: OleVariant;
  3. begin
  4.   MyWebBrowser.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
  5. end;



Con Internet Explorer 3 tendremos que usar el siguiente método



delphi
  1. procedure PrintIE;
  2. var
  3.   CmdTarget : IOleCommandTarget;
  4.   vaIn, vaOut: OleVariant;
  5. begin
  6.   if MyWebBrowser.Document <> nil then
  7.   try
  8.     MyWebBrowser.Document.QueryInterface(IOleCommandTarget, CmdTarget);
  9.     if CmdTarget <> nil then
  10.     try
  11.       CmdTarget.Exec( PGuid(nil), OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut);
  12.     finally
  13.       CmdTarget.Release;
  14.     end;
  15.   except
  16.     { nada }
  17.   end;
  18. end;



Nota: si usamos Delphi 2 o 3 tendremos que reemplazar PGuid(nil) por PGuid(nil)^