Este documento de HTML Word se muestra incorrectamente en OpenOffice.org

Tengo este código simple en php:

<?php header("Content-type: application/vnd.ms-word"); header("Content-Disposition: attachment;Filename=kid_tag.doc"); echo '
Nursery
Sofia Abello  
9AM Oct-12-08   Dance Studio
'; ?>

se muestra bien con MS Office Word, sin embargo, el ancho se reduce (¡no el ancho adecuado!) cuando se abre con Open Office Writer.

    En realidad, está importando HTML en MS Word y OpenOffice.org. HTML no es el formato nativo de Word ni de OpenOffice.org, lo que significa que la entrada debe convertirse primero.

    No sorprende que estas aplicaciones (cuyo objective principal es la edición de documentos en el formato nativo de la aplicación) no estén haciendo un trabajo perfecto allí. De hecho, y eso no es un gran secreto, ni siquiera los navegadores web, cuyo objective principal es la representación de HTML, no son perfectos en esa área.

    La solución sería proporcionar HTML que funcione en ambas aplicaciones. Puede hacerlo utilizando los comentarios condicionales que son una extensión de propiedad de Microsoft a HTML y, por lo tanto, solo los entienden los productos de Microsoft.

    Así es como podría verse en tu ejemplo:

     < ![if !mso]> 
    OpenOffice.org Version
    < ![endif]>

    Creo que la forma más fácil de generar archivos DOC con PHP es usar el componente de Zend Framework phpLiveDocx . Puede cargar plantillas de Word u Open Office, combinar datos de texto y guardar el documento final en varios formatos, como DOC, DOCX, RTF y PDF.

    Obtenga más información en el sitio web del proyecto:

    http://www.phplivedocx.org/articles/brief-introduction-to-phplivedocx/