Pergunta

Eu tenho esse código simples em 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>';

?>

exibe ok com o MS Office Word, no entanto, a largura é reduzida (largura não adequada!) Quando aberto com o escritor escritório aberto.

Foi útil?

Solução

Você está realmente importar HTML em MS Word e OpenOffice.org. HTML não é o formato nativo da palavra nem OpenOffice.org, o que significa a entrada tem de ser convertido em primeiro lugar.

Não é nenhuma surpresa que estas aplicações (cujo objectivo principal é a edição de documentos em formato nativo do aplicativo) está fazendo não um trabalho perfeito lá. Na verdade - e isso não é um grande segredo - nem mesmo navegadores web, cujo principal objetivo é a prestação de HTML não são perfeitos nessa área.

A solução seria fornecer HTML que funciona em ambas as aplicações. Você pode fazer isso usando condicional comentários que são uma extensão proprietária da Microsoft para HTML e, portanto, só compreendido por produtos da Microsoft.

É assim que poderia ser semelhante no seu exemplo:

<![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]-->

Outras dicas

Eu acho que a maneira mais fácil de gerar arquivos DOC com PHP está usando o componente Zend Framework phpLiveDocx . Você pode carregar modelos do Word ou Open Office, mesclar dados textuais e salvar o documento final para uma série de formatos, como DOC, DOCX, RTF e PDF.

Saiba mais sobre o projeto web site:

http://www.phplivedocx.org/articles/brief- introdução-a-phplivedocx /

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top