La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2784 - COMO PUEDO IMPRIMIR LOS DATOS DE UNA PAGINA WEB
Autor:  jose jmcb
LLEVO UNA APLICACION PARA INTRANET, Y AHORA ME VEO CON LA DIFICULTAD PARA PODER IMPRIMIR LOS DATOS RESULTANTES DE UN IDC, VISUALIZADOS EN UN MARCO, EN LA IMPRESORA.
SE PODRIA HACER MEDIANTE EL MENU ´ARCHIVO´, PERO SI QUIERO IMPRIMIR ESE MARCO, Y SU CONTENIDO, ¿QUE PUEDO HACER?
TENGO EN MI PODER UNA RUTINA, QUE ME PERMITIRIA HACERLO (WINDOW.PRINT()), PERO ES NECESARIO EL EXPLORER 5.0, CASO QUE NO ES EL DE MI EMPRESA, DONDE TENEMOS LA VERSION 4.0 DEL EXPLORER.

UN ABRAZO.

  Respuesta:  Daniel Perez
Con este código puedes imprimir en Explorer 4.0 o superior y en NetScape.

---------------------------------------------------------

<html>
<head>
<title>Untitled</title>
<script>
function imprimir() {
if (navigator.appName.substring(0,8) == 'Netscape') {
if (parseInt(navigator.appVersion.substring(0,1)) > 3) {
window.print();
} else {
alert("Esta funcion esta disponible solo para\nNetscape y Explorer version 4 o superiores.\nUd. Puede imprimir seleccionando la funcion\nImprimir del menu Archivo de su navegador\n");
}
} else {
// IE 5.0 or later
if ((navigator.appVersion.indexOf(5)) != -1) {
//alert("IE 5 or above ");
window.print();
} else {
// IE 4.0 versions
if (parseInt(navigator.appVersion.substring(0,1)) > 3) {
// añadir un confirm
// Si se utiliza OLECMDEXECOPT_DONTPROMPTUSER y al dialogo de la impresora se
// le da cancelar se va en error y ya no saca el dialogo....

if (confirm('¿Este seguro que desea imprimir?')) {
var OLECMDID_PRINT = 6;
var OLECMDEXECOPT_DONTPROMPTUSER = 2;
var OLECMDEXECOPT_PROMPTUSER = 1;
var WebBrowser = "<OBJECT ID=\"WebBrowser1\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>";
document.body.insertAdjacentHTML("beforeEnd", WebBrowser);
WebBrowser1.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER);
WebBrowser1.outerHTML = "";
}

} else {
alert("Esta funcion esta disponible solo para\nNetscape y Explorer version 4 o superiores.\nUd. Puede imprimir seleccionando la funcion\nImprimir del menu Archivo de su navegador\n");
}
}
}
}
</script>
</head>

-----------------------------------------------------------

Solo tienes que llamar a la funcion Imprimir() mediante:
<a href="#" onClick="imprimir();">Imprimir</a>

Espero que os sirva, porque es una funcion muy util !!

  Respuesta:  Jose Ignacio Alvarez Rodriguez
Es dificil imprimir, pero no posible. La verdad es que la solucion es compleja y enrevesada.
En principio se utiliza una funcion en javaScript que use la fomoso "window.print()". Esto no imprime, pero genera un error que posible interceptar en vbscript. Esta funcion llama a un objeto de la DLL del navegador, definido por su CLASSID. Esta llamada realiza la misma funcion que si pulsases el boton de imprimir del navegador. La solucion no es mia, pero la he aplicado y funciona.
Toda la informacion esta en :
http://developer.irt.org/script/481.htm