Estoy generando «documento de Word» con un encabezado en la primera página como código HTML. <style>
la etiqueta contiene:

@page Section {
    size:8.5in 11.0in;
    margin: 0.7in 0.9in 0.7in 0.9in;
    mso-header-margin: 0.0in;
    mso-footer-margin: 0.0in;
    mso-title-page: yes;
    mso-first-header: fh1;
    mso-paper-source: 0;
}
div.Section {
    page: Section;
}

y <body>:

<div class="Section" style="font-family: Verdana, sans-serif;">
    <![if supportFields]>
        <div style="mso-element:header" id="fh1">
            <p class="MsoHeader">
                header
            </p>
        </div>
    <![endif]>
</div>

Se muestra el «encabezado», texto en el encabezado y en el documento principal del cuerpo. Los recursos (http://techsynapse.blogspot.com/2007/03/generating-word-document-dynamically.html y http://www.pbdr.com/ostips/wordfoot.htm) que he encontrado dicen que no hay forma de evitar este efecto sin que por medio de un archivo de encabezado que no es una opción para mí.

Y ahí va mi pregunta: ¿conoces alguna solución para ese problema? ¿Cómo puedo ocultar la ocurrencia del encabezado en el documento principal, sino que dejan en su lugar en la parte superior de la página? Gracias de antemano por cualquier consejo.

OriginalEl autor user485332 | 2012-02-18

2 Comentarios

  1. 7

    Esto funcionó para mí:

    <html
    xmlns:o='urn:schemas-microsoft-com:office:office'
    xmlns:w='urn:schemas-microsoft-com:office:word'
    xmlns='http://www.w3.org/TR/REC-html40'>
    <head><title></title>
    <!--[if gte mso 9]><xml>
    <w:WordDocument>
    <w:View>Print</w:View>
    <w:Zoom>90</w:Zoom>
    </w:WordDocument>
    </xml><![endif]-->
    <style>
    p.MsoFooter, li.MsoFooter, div.MsoFooter
    {
    margin:0in;
    margin-bottom:.0001pt;
    mso-pagination:widow-orphan;
    tab-stops:center 3.0in right 6.0in;
    font-size:12.0pt;
    }
    <style>
    <!-- /* Style Definitions */
    @page Section1
    {
    size:8.5in 11.0in;
    margin:1.0in 1.0in 1.0in 1.0in;
    mso-header-margin:.5in;
    mso-footer-margin:.5in;
    mso-title-page:yes;
    mso-header: h1;
    mso-footer: f1;
    mso-first-header: fh1;
    mso-first-footer: ff1;
    mso-paper-source:0;
    }
    div.Section1
    {
    page:Section1;
    }
    table#hrdftrtbl
    {
    margin:0in 0in 0in 900in;
    width:1px;
    height:1px;
    overflow:hidden;
    }
    -->
    </style></head>
    <body lang=EN-US style='tab-interval:.5in'>
    <div class=Section1>
    <p> CONTENT </p>
    <br/>
    <table id='hrdftrtbl' border='0' cellspacing='0' cellpadding='0'>
    <tr><td>
    <div style='mso-element:header' id=h1 >
    <p class=MsoHeader ><p>&nbsp;HEADER-TITLE</p></p>
    </div>
    </td>
    <td>
    <div style='mso-element:footer' id=f1>
    <p>&nbsp;FOOTER-TITLE</p>
    <p class=MsoFooter>
    <span style=mso-tab-count:2'></span>
    Page <span style='mso-field-code: PAGE '><span style='mso-no-proof:yes'></span></span> of <span style='mso-field-code: NUMPAGES '></span>
    </p>
    </div>
    <div style='mso-element:header' id=fh1>
    <p class=MsoHeader><span lang=EN-US style='mso-ansi-language:EN-US'>&nbsp;FIRST-HEADER-TITLE<o:p></o:p></span></p>
    </div>
    <div style='mso-element:footer' id=ff1>
    <p class=MsoFooter><span lang=EN-US style='mso-ansi-language:EN-US'>&nbsp;FIRST-FOOTER-TITLE<o:p></o:p></span></p>
    </div>
    </td></tr>
    </table>
    </body></html>
    Siempre muestra un espacio extra para mí.
    No es capaz de generar la imagen en el encabezado de servidor, pero en localhost su trabajo bien. Ruta de acceso generadas por la imagen se ve bien en el servidor también. Puede usted por favor decirme lo que me falta que en localhost es la imagen que se añadió en archivo de word, pero en el servidor no esta. Nota En la máquina local y he de ms-office instalado, pero en el servidor no.
    Cómo quitar un espacio vacío en la sección de encabezado? Cuando la veo en la palabra que todo está bien pero cuando se imprimen, a continuación, el espacio vacío que se añadió…alguna idea?

    OriginalEl autor vencedor

  2. 4

    Para actualizar en la respuesta anterior por vencedor y quitar la extra vacío codificación de caracteres que se añade a la cabecera/pie de página imágenes o el texto que usted puede hacer algo como esto:

    <html
    xmlns:o='urn:schemas-microsoft-com:office:office'
    xmlns:w='urn:schemas-microsoft-com:office:word'
    xmlns='http://www.w3.org/TR/REC-html40'>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title></title>
    <!--[if gte mso 9]><xml>
    <w:WordDocument>
    <w:View>Print</w:View>
    <w:Zoom>100</w:Zoom>
    </w:WordDocument>
    </xml><![endif]-->
    <style>
    <!-- /* Style Definitions */
    p.MsoHeader, li.MsoHeader, div.MsoHeader{
    margin:0in;
    margin-top:.0001pt;
    mso-pagination:widow-orphan;
    tab-stops:center 3.0in right 6.0in;
    }
    p.MsoFooter, li.MsoFooter, div.MsoFooter{
    margin:0in 0in 1in 0in;
    margin-bottom:.0001pt;
    mso-pagination:widow-orphan;
    tab-stops:center 3.0in right 6.0in;
    }
    .footer {
    font-size: 9pt;
    }
    @page Section1{
    size:8.5in 11.0in;
    margin:0.5in 0.5in 0.5in 0.5in;
    mso-header-margin:0.5in;
    mso-header:h1;
    mso-footer:f1;
    mso-footer-margin:0.5in;
    mso-paper-source:0;
    }
    div.Section1{
    page:Section1;
    }
    table#hrdftrtbl{
    margin:0in 0in 0in 9in;
    } 
    -->
    </style>
    <style type="text/css" media="screen,print">
    body {
    font-family: "Calibri", "Verdana","HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
    font-size:12pt;
    }
    pageBreak {
    clear:all;
    page-break-before:always;
    mso-special-character:line-break;
    }
    </style>
    </head>
    <body style='tab-interval:.5in'>
    <div class="Section1">
    Something page 1
    <div class="pageBreak"></div>
    Something page 2
    <div class="pageBreak"></div>
    <table id='hrdftrtbl' border='1' cellspacing='0' cellpadding='0'>
    <tr>
    <td>
    <div style='mso-element:header' id="h1" >
    <p class="MsoHeader">
    <table border="0" width="100%">
    <tr>
    <td>
    YOUR_HEADER IMAGE/TEXT
    </td>
    </tr>
    </table>
    </p>
    </div>
    </td>
    <td>
    <div style='mso-element:footer' id="f1">
    <p class="MsoFooter">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td align="center" class="footer">
    YOUR_FOOTER_TEXT
    <g:message code="offer.letter.page.label"/> <span style='mso-field-code: PAGE '></span> of <span style='mso-field-code: NUMPAGES '></span>
    </td>
    </tr>
    </table>
    </p>
    </div>
    </td>
    </tr>
    </table>
    </div>
    </body>
    </html>

    Esto incluye ahora css completo de componentes para encabezado y pie de página segmentos.

    El truco que realmente quita el extra de codificación es la declaración de otra tabla dentro de la MsoFooter y MsoHeader secciones.

    Muy útil, gracias! ¿Sabes si hay alguna propiedad que podría permitir que el texto se superponen en la sección de encabezado ? Como lo es ahora el cuerpo de texto siempre ir justo debajo de la última línea del encabezado.
    Echa un vistazo aquí sebsauvage.net/wiki/doku.php?id=word_document_generation. Hemos terminado de usar el mhtml modelo (en la parte inferior) y funciona perfectamente. El problema con este método es la tabla oculta que en nuestro caso fue la creación de una página adicional cuando la última página era más de la mitad del camino hacia abajo.
    sí, ese es exactamente el tutorial he utilizado con éxito. Pero yo no se las arreglan para que el texto se superponen el encabezado. Otra opción sería utilizar marca de agua en lugar de cabecera, pero que implicaría la conversión de la cabecera html en una imagen y que no es fácil, ya sea :/ Así que si usted tenía un truco para hacer que el cuerpo de texto de inicio en la parte superior de la página, incluso si hay un encabezado, que sería genial 🙂
    Cualquier solución para eliminar la tabla oculta en el final de la página/ para sacar el extra de la página en blanco?
    como por encima de sebsauvage.net/wiki/lib/exe/… comentario – el trabajo sólo fue un cambio total a mhtml

    OriginalEl autor Vahid

Dejar respuesta

Please enter your comment!
Please enter your name here