Bu HTML Word belgesi OpenOffice.org yanlış görüntüler

2 Cevap php

Ben php bu basit bir kod var:

<?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>';

?>

açık ofis yazar ile açıldığında, MS Office Word ile ok görüntüler, ancak, genişliği (uygun değil genişlik!) azalır.

2 Cevap

Aslında MS Word ve OpenOffice.org HTML içine ithal ediyoruz. HTML giriş ilk dönüştürülecek olması anlamına gelir ki, Word'ün ne OpenOffice.org ne yerli biçimi değil.

(Ana amaç uygulamanın yerli formatında belgelerin düzenleme olduğunu) bu uygulamalar olmadığı mükemmel bir iş yapıyor olması sürpriz değildir. Aslında - ve bu büyük bir sır değil - asıl amacı is HTML render o bölgede mükemmel değildir bile web tarayıcıları.

Çözüm hem uygulamalarda çalışır HTML sağlamak olacaktır. Sen conditional comments hangi kullanarak HTML için özel bir Microsoft uzantısıdır ve bu nedenle sadece Microsoft ürünleri tarafından anladım yapabilirdi.

Bu sizin örnekteki gibi görünebilir nasıl:

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

PHP ile DOC dosyalarını oluşturmak için en kolay yolu Zend Framework bileşeni phpLiveDocx kullanarak düşünüyorum. Siz, Word veya Open Office şablonları yüklemek metinsel verileri birleştirmek ve bu DOC, DOCX, RTF ve PDF gibi formatları bir dizi, nihai belge kaydedebilirsiniz.

Proje web sitesinde daha fazla bilgi edinin:

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