asp.net image ms-word

¿Cómo puedo incrustar imágenes en un archivo de Word generado ASP.NET?



image ms-word (1)

Tengo un problema bastante común, como vi en los diversos grupos de usuarios, pero no pude encontrar una respuesta adecuada.

Lo que quiero hacer es generar una página ASP.NET en mi sitio web que tendrá la opción de exportarse al formato .doc de Microsoft Word.

El método que he usado es este:

Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=Test.doc"); Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "application/msword"; StringWriter sw = new StringWriter(); HtmlTextWriter htmlWrite = new HtmlTextWriter(sw); Page.RenderControl(htmlWrite); Response.Write(sw.ToString()); Response.End();

Sin embargo, aunque genera una palabra doc, las imágenes son notas incrustadas en el documento, más bien se colocan como enlaces. He buscado una manera de hacer esto, pero no he encontrado algo que realmente funcionó.

Agradecería cualquier ayuda que pueda obtener, ya que este es un requisito de "último minuto" (hablar de típico)

Gracias


Respuesta corta: debe proporcionar URL absolutas para el origen de las imágenes en su página.

Respuesta más larga:

Microsoft Word abrirá un documento HTML si lo renombra con la extensión * .doc. Esto es lo que está haciendo el código que usted proporcionó. En este caso, las imágenes no se incrustan en el documento como lo harían si creara un documento en formato de Word real. Si sus imágenes usan URL relativas, Word no sabrá dónde buscarlas, por lo tanto, necesitará URL absolutas.

NOTA: Esto significa que cualquier persona que vea el documento sin una conexión a Internet no verá las imágenes, ya que se solicitan desde el servidor cada vez que se abre el documento.

Una solución más elegante sería crear el documento en el formato de Word real. Una gran biblioteca para esto es Aspose.Words . Al usar esta biblioteca, podrá insertar las imágenes directamente en el documento para que no dependan del servidor.