2011-02-04 26 views
6

Actualmente estoy generando un archivo .doc como html usando asp.NET.Inserte un salto de página en un HTML generado .doc

Deseo insertar un salto de página a la página pero no sé cómo.

He intentado utilizar el estilo css = 'page-break-before: always' pero no hace nada.

Este es el código asignado a un evento de clic de botón:

HttpContext.Current.Response.Clear(); 
    HttpContext.Current.Response.Charset =""; 

    HttpContext.Current.Response.ContentType ="application/msword"; 

    string strFileName = "GenerateDocument"+ ".doc"; 
    HttpContext.Current.Response.AddHeader("Content-Disposition","inline;filename=" + strFileName); 

    StringBuilder strHTMLContent = new StringBuilder(); 

    strHTMLContent.Append("<p align='Center'>Content Before Page Break</p>".ToString()); 

    strHTMLContent.Append("<br><br>".ToString()); 
    strHTMLContent.Append("<p class='pageBreak' style='mso-special-character:line-break;'>meh</p>".ToString()); 

    strHTMLContent.Append("<br><br>".ToString()); 
    strHTMLContent.Append("<p align='Center'>Content After Page Break</p>".ToString()); 

    HttpContext.Current.Response.Write(strHTMLContent); 
    HttpContext.Current.Response.End(); 
    HttpContext.Current.Response.Flush(); 
+0

¿Está creando un documento de MS Word con HTML? –

+0

Afirmar que el documento es MS Word no lo convierte en MS Word. Simplemente hace que cualquier aplicación que el usuario haya configurado para manejar documentos de Word intente procesar un documento HTML. Si desea servir un documento de MS Word, genere uno real. No envíe HTML envuelto en un paquete de mentiras. – Quentin

+0

Puede que sea mejor que mire la especificación 'docx' - Puede generarla de manera similar y generar un formato compatible en lugar de esperar la palabra/lo que sea que el programa maneje Los archivos' doc' pueden recoger las piezas – Basic

Respuesta

1

No sé lo que la notación de la Oficina de ello es, pero me gustaría crear un documento con un salto de página en Word, guardarlo como HTML, y mira lo que usa.

Adivinar desde el bloque de código que mostrar, que podría ser

mso-special-character:page-break; 
+0

Ya lo he intentado sin resultado. Supongo que MS lo quita cuando abre un archivo html. – baked

-2

No generar archivos de MS Word con HTML

Usted no quiere construir una casa con la planes para un barco, ¿verdad?

Si quieres hacer esto programáticamente, te sugiero que eches un vistazo al formato docx o incluso a la especificación de formato de texto enriquecido y te muevas desde allí. Pero con toda probabilidad, vas por el camino equivocado y ya hay bibliotecas que puedes usar.

que sugieren que start here

+1

No, POR SUPUESTO que usar objetos OLE o ir a la especificación docx es un paso ATRÁS, no reenviar. Sí, esas especificaciones no solo son atractivas, sino que además las conozco y también me enamoré de ellas en el pasado. PERO implican COMENZAR NUEVAMENTE a formatear un documento. Aprender a transformar de html a doc SUBSENTA esto, en el sentido de que un esfuerzo (un buen esfuerzo, por supuesto) funcionaría tanto para una página web como para un documento word editable, o incluso un documento impreso. UN esfuerzo, UN cambio que afecta todo cada vez, sin tener que volver a comenzar cada vez. –

15

Palabra tiene sus propias clases especiales. mso-special-character: page-break; funciona en esta situación, como lo menciona Pekka, sin embargo, lo que falta es que esto debe estar en una etiqueta <br>. Por lo que el siguiente código funcionará:

<br clear=all style='mso-special-character:line-break;page-break-before:always'> 

No es una solución particularmente agradable, pero en mi caso no tenía otra opción (que no he escrito el código original, y era un trabajo mucho más grande para cambiarlo).

+0

Esta es una gran respuesta que realmente funciona de la caja. – Greg0ry

Cuestiones relacionadas