Foros del Web » Programando para Internet » ASPX (.net) »

Documento Html a Word

Estas en el tema de Documento Html a Word en el foro de ASPX (.net) en Foros del Web. Hola a todos, estoy desarrollando una utilidad dentro de una página web, y hasta ahora lo que hace es imprimir unos escritos en formato html. ...
  #1 (permalink)  
Antiguo 28/01/2009, 05:23
Avatar de PESI  
Fecha de Ingreso: enero-2007
Mensajes: 112
Antigüedad: 17 años, 3 meses
Puntos: 0
Documento Html a Word

Hola a todos, estoy desarrollando una utilidad dentro de una página web, y hasta ahora lo que hace es imprimir unos escritos en formato html.

Son páginas .aspx que utilizo como plantillas, es decir:

1º.- Abro la página que tengo en una carpeta del servidor
2º.- Le doy valor a ciertas "labels"
3º.- Imprimo la página, poniendo al principio de la misma:
<body onload="window.print();">

De esta forma el usuario puede imprimir la página.

Me han pedido si podría ademas transformar estas página ademas a formato word.

Ando algo perdido.... ¿ Me podeis ayudar ?

Muchas Gracias
  #2 (permalink)  
Antiguo 28/01/2009, 05:46
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Documento Html a Word

Y no miraste en google ?? Hay muchas cosas sobre este tema, mira sobre el HtmlTextWriter y demás.

Es muy simple, aun que parezca complejo, hay muchas cosas en google. Hechale un ojo.
__________________
Charlie.
  #3 (permalink)  
Antiguo 28/01/2009, 07:42
Avatar de PESI  
Fecha de Ingreso: enero-2007
Mensajes: 112
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Documento Html a Word

Cita:
Iniciado por chcma Ver Mensaje
Y no miraste en google ?? Hay muchas cosas sobre este tema, mira sobre el HtmlTextWriter y demás.

Es muy simple, aun que parezca complejo, hay muchas cosas en google. Hechale un ojo.

Muchas gracias por contestar, pero creo que HtmlTextWriter no me sirve. Estuve buscando en google antes de dejar el mensaje en el foro, pero es que no encuentro nada que me de orientación sobre el problema que tengo que resolver.

En mi caso yo tengo unas plantillas, que son páginas .aspx, con texto ya escrito y con unas labels sin texto, y lo que hago es rellenar estas labels sin texto y presentar la página al usuario. El usuario puede entonces imprimir la página o guardarla en formato htm.

La mejora que me han pedido es que presente la página al usuario pero en formato word.

Saludos y muchas gracias.
  #4 (permalink)  
Antiguo 28/01/2009, 09:43
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Documento Html a Word

Espero te sirva amigo:

http://dotnetslackers.com/Community/...-document.aspx
__________________
Charlie.
  #5 (permalink)  
Antiguo 28/01/2009, 10:41
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: Documento Html a Word

El iTextSharp te puede ayudar un poco, por que no lo pruebas?
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #6 (permalink)  
Antiguo 29/01/2009, 03:06
Avatar de PESI  
Fecha de Ingreso: enero-2007
Mensajes: 112
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Documento Html a Word

Muchas Gracias Charlie y Erick por vuestros links, son muy interesantes.

Charlie, he visto el código y lo voy a probar, pero tengo una duda, con este código, según veo, ¿ cualquier página de mi aplicación a la que se llame con un parámetro "ToWord" se vera en formato word ?, yo lo entiendo así, no se si tú has podido dar un vistazo al link con más profundidad.

De todas formas, lo voy a probar.

Erick, lo del iTextSharp tiene ¡¡ buena pinta !! tambien lo voy a probar.

Lo dicho, muchas gracias. Un Saludo
  #7 (permalink)  
Antiguo 29/01/2009, 04:23
Avatar de PESI  
Fecha de Ingreso: enero-2007
Mensajes: 112
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Documento Html a Word

Cita:
Iniciado por chcma Ver Mensaje
Ya lo he probado.

Efectivamente, lo que hace es, que cada vez que se carga una página del proyecto, comprueba si por QueryString se pasa como parámetro "ToWord", y si es así modifica el ContentType del Response a "application/msword".

El problema está en que casca en la linea:
Stream stream = webRequest.GetResponse().GetResponseStream();

Que esta justo antes de la modificación del Response, y el error que da es:

"Se han intentado demasiados redireccionamientos automáticos"

Le suena a alguien de algo, ¿ qué significa esto ?

El código tiene muy buena pinta, os lo dejo por si veis algo raro. Esto es lo que hace cuando se pasa por QueryString "ToWord":

HttpContext.Current.Response.Clear();

if(HttpContext.Current.Request.QueryString["ToWord"]!=null)
{
HttpContext.Current.Response.Buffer = true;
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create (HttpContext.Current.Request.Url.ToString().Split( '?')[0]);
webRequest.Credentials = CredentialCache.DefaultCredentials;

// Aqui es donde casca
Stream stream = webRequest.GetResponse().GetResponseStream();
//

HttpContext.Current.Response.ContentType = "application/msword";
string pageHTML = new StreamReader(stream).ReadToEnd();
HttpContext.Current.Response.Write(pageHTML.ToStri ng());
((HttpApplication)sender).CompleteRequest();
HttpContext.Current.Response.End();
}


Muchas gracias a todos.
Un Saludo
  #8 (permalink)  
Antiguo 29/01/2009, 04:25
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Documento Html a Word

Bueno, voy a probarlo, que suena interesante... haber si entre todos podemos solucionarte el problema.
__________________
Charlie.
  #9 (permalink)  
Antiguo 29/01/2009, 05:27
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Documento Html a Word

Puedes usar itextSharp (como anteriormente te indicaban, aunque te tienes tu que currar el codigo) o usar una impresora virtual...del estilo del pdfcreator o similares y lo unico que tienes que hacer es simular la impresion y configurar el interface de la impresora.
  #10 (permalink)  
Antiguo 29/01/2009, 09:59
Avatar de PESI  
Fecha de Ingreso: enero-2007
Mensajes: 112
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Documento Html a Word

Bueno, poco a poco vamos avanzando.

En el foro ASP clásico, he encontrado un mensaje de un forero que deja un link con un ejemplo, y en este básicamente lo que dice es que si quieres visualizar una hoja asp en formato excel, basta con poner al principio de la hoja lo siguiente:

<%
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
%>

Lo he probado y ¡¡¡¡¡¡¡¡ FUNCIONA !!!!!!!!!!! , eso si me pierde las hojas de estilo y no me visualiza las imágenes .

Para probar el formato en word he probado con

<%
Response.Buffer = true;
Response.ContentType = "application/msword";
%>

Lo he probado y ¡¡¡¡¡¡¡¡¡¡¡¡ NO FUNCIONA !!!!!!!!!!!!!

Me muestra un mensaje con lo siguiente:

No se puede mostrar la página XML
No se puede ver la entrada XML con la hoja de estilo . Corrija el error y

haga clic en el botón Actualizar, o inténtelo de nuevo más tarde.
--------------------------------------------------------------------------
The download of the specified resource has failed. Error al procesar el

recurso http://www.w3.org/TR/xhtml1/DTD/xhtml1-tran...

Así que nada, seguiremos intentándolo.

Me voy a leer el Manual ITextSharp.
  #11 (permalink)  
Antiguo 29/01/2009, 10:46
Avatar de PESI  
Fecha de Ingreso: enero-2007
Mensajes: 112
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Documento Html a Word

He vuelto a hacer otra prueba poniendo.

<%
Response.Buffer = true;
Response.ContentType = "application/msword";
%>

Y ahora si me funciona, me lo muestra en formato word, aunque al igual que con el formato excel, me pierde las imágenes.

Saludos
  #12 (permalink)  
Antiguo 29/01/2009, 12:15
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Documento Html a Word

Mmmmm, eso de las imágenes ya lo veo más complicado... Miraré algo por ahí... que este tema es bueno. Si sacas algo avisa ee !!! jejeje.
__________________
Charlie.
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 13:52.