Foros del Web » Programando para Internet » Javascript »

Imprimir iframe con codigo en el fondo

Estas en el tema de Imprimir iframe con codigo en el fondo en el foro de Javascript en Foros del Web. Buenas tardes experto tengo la siguiente duda, tengo un Iframe en una pagina aspx en donde se muestra información de otras paginas por lo que ...
  #1 (permalink)  
Antiguo 31/08/2010, 17:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 1
Sonrisa Imprimir iframe con codigo en el fondo

Buenas tardes experto tengo la siguiente duda, tengo un Iframe en una pagina aspx en donde se muestra información de otras paginas por lo que deseo imprimir la información que contenga el iframe, ya que esto lo he conseguido con este código:
<script>
function PrintIframe()
{
window.parent.nombre_del_iframe.focus();
window.print();
}
</script>

Pero lo que deseo es que al momento de imprimir en la hoja salga en la parte de atrás el nombre del usuario en el centro asi como una marca de agua, tomando en cuenta que ya tengo el nombre del usuario en una variable de sesión, De antemano te agradesco tu ayuda.
  #2 (permalink)  
Antiguo 31/08/2010, 19:56
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Imprimir iframe con codigo en el fondo

lo que puedes hacer es generar esa marca de agua como imágen (System.Drawing.Imaging en asp.net) y mediante CSS media="print" solo aparecerá al imprimir, PERO como por defecto los navegadores no imprimen imágenes de fondo, no dará resultado a menos que el usuario lo habilite manualmente, por lo que es recomendable hacer reportes en pdf por ejemplo.

PD: podrías intentar con una <img /> con CSS position fixed, pero con fondo trasparente, pero no garantizo nada
  #3 (permalink)  
Antiguo 01/09/2010, 09:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 1
Sonrisa Respuesta: Imprimir iframe con codigo en el fondo

Gracias amigo por tu pronta respuesta, bueno se que parece dificil, pero te explico el caso para ver si puede haber otra salida, lo que pasa es que este iframe almacena documentos de word que han sido convertidor en html y que los usuarios que quieren imprimirlos tiene que salir su codigo en el fondo de la hoja, abria la posibilidad de hacerlo de otra forma como por ejemplo usando la etiqueta div con un fondo y imprimir las dos dos div uno que contenga el documento y otro que contenga el fondo e imprimir los dos, o hacer de otra forma, te agradesco tu ayuda.
  #4 (permalink)  
Antiguo 01/09/2010, 19:54
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Imprimir iframe con codigo en el fondo

Buenos mis avances hasta ahora es que en vez de usar un iframe uso ahora una etiqueta div que es mi contener de paginas web como lo leí en un post que encontré por ahí y hago lo hago de esta manera con una script
-----------------------------------------------------------------------------------------------------------------------------
<script >
// Documento JavaScript
// Esta función cargará las paginas
function paginas(url, id_contenedor) {
var pagina_requerida = false;
if (window.XMLHttpRequest) {
// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
// en caso que sea una versión antigua
try {
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
else
return false;
pagina_requerida.onreadystatechange = function() {
// función de respuesta
cargarpagina(pagina_requerida, id_contenedor);
}
pagina_requerida.open('GET', url, true); // asignamos los métodos open y send
pagina_requerida.send(null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor) {
if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf("http") == -1))
document.getElementById(id_contenedor).innerHTML = pagina_requerida.responseText;
}
-----------------------------------------------------------------------------------------------------------------------------

Este codigo me permite mostrar en el div el contenido de mi pagina que yo desee y este es mi div
-----------------------------------------------------------------------------------------------------------------------------

<div id="contenidos" style="width: 587px;" >
</div>
-----------------------------------------------------------------------------------------------------------------------------
Y luego lo llamo con el siguiente enlace
-----------------------------------------------------------------------------------------------------------------------------
<a href="javascript:paginas('nombre_de_la_pagina.htm' ,’ contenidos');">documento</a>
-----------------------------------------------------------------------------------------------------------------------------
Hasta ya hice lo del div pero falta que me muestre la marca de agua del codigo del usuario, pero como hasta ahora he visto que las imágenes de fondo el IE no lo imprimi expecto que lo configures en opciones de internet, pero yo no puedo hacerlo en cada maquina asi que cree una funcion en javascript que me permite imprimir el fondo de la imagen aquí se los dejo para que puedan hacer sus pruebas:
-----------------------------------------------------------------------------------------------------------------------------
window.onload = function()
{ document.getElementById('fondoDocumento').style.he ight =
document.getElementById('contenidoDocumento').offs et
Height;
}
-----------------------------------------------------------------------------------------------------------------------------
Luego colocar dentro del body lo siguiente:
-----------------------------------------------------------------------------------------------------------------------------
<div id='fondoDocumento' style='position:absolute; left:0px; top:0px; z-index:1; width=100%; height=900; overflow:hidden;'>
<img src='nombre_imagen.gif' width='100%' />
</div>
<div id='contenidoDocumento' style='position:absolute; left:0px; top:0px; z-index:1; width=100%; background-repeat:repeat '>
<lang=ES link=blue vlink=purple>
<div class=Section1>
-----------------------------------------------------------------------------------------------------------------------------
Deben de tomar en cuenta que todos los archivos estan un mismo directorio y con esto cuando imprimas la hoja (menu archivo=> vista previa de imprision) te mostrara la imagen de fondo como si fuera la marca de agua, pero hay va el reto por lo que les pido su ayuda, quisiera que la imagen se repita a lo largo de todo el documento ya que solo se muestra en la primera hoja, es bueno que todos aporten para asi poder sumar cada vez mas a nuestros conocimientos.

Etiquetas: fondo, iframe
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:39.