Question

J'ai ce code simple en php:

<?php

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=kid_tag.doc");

echo '<table cellspacing="0" cellpadding="0" border="0" width="8.4cm">
    <tr>
    <td colspan="3" style="text-align: right; height: 0.6cm">Nursery</td>
    </tr>
    <tr>
        <td style="height: 1.8cm"><img src="http://images.funadvice.com/photo/image/old/6943/tiny/cat.jpg" /></td>
        <td style="text-align: center; font-weight: bold">Sofia Abello</td>
    <td>&nbsp;</td>
    </tr> 
    <tr>
    <td style="text-align: left; height: 0.6cm">9AM Oct-12-08</td>
    <td>&nbsp;</td>
    <td style="text-align: right">Dance Studio</td>
    </tr>  
</table>';

?>

affiche ok avec MS Office Word, cependant, la largeur est réduite (pas la bonne largeur!) Lorsqu'il est ouvert avec l'écrivain de bureau ouvert.

Était-ce utile?

La solution

Vous importez réellement HTML dans MS Word et OpenOffice.org. HTML n'est pas le format natif de ni mot ni OpenOffice.org, ce qui signifie que l'entrée doit être converti en premier.

Il est pas surprenant que ces applications (dont l'objectif principal est l'édition des documents au format natif de l'application) ne le font pas un travail parfait là-bas. En fait - et ce n'est pas un grand secret - même pas les navigateurs Web, dont le but principal le rendu du HTML ne sont pas parfaits dans ce domaine.

La solution serait de fournir HTML qui fonctionne dans les deux applications. Vous pouvez le faire en utilisant qui sont une extension propriétaire de Microsoft au format HTML et donc seulement compris par produits Microsoft.

Voici comment cela pourrait ressembler dans votre exemple:

<![if !mso]>
<table cellspacing="0" cellpadding="0" border="0" width="8.4cm">
  <tr>
    <td>OpenOffice.org Version</td>
  </tr>
</table>
<![endif]>
<!--[if mso]>
<table cellspacing="0" cellpadding="0" border="0" width="8.4cm">
  <tr>
    <td>Microsoft Word version</td>
  </tr>
</table>
<![endif]-->

Autres conseils

Je pense que la meilleure façon de générer des fichiers DOC avec PHP utilise le composant Zend Framework phpLiveDocx . Vous pouvez charger Word ou ouvrir des modèles Office, fusionner des données textuelles et enregistrez le document final à un certain nombre de formats, tels que DOC, DOCX, RTF et PDF.

En savoir plus sur le site web du projet:

http://www.phplivedocx.org/articles/brief- l'introduction à phplivedocx /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top