php在程式中將網頁產生word文檔並提供下載的代碼

來源:互聯網
上載者:User

在這篇文章中主要解決兩個問題:

1:在php中如何把html中的內容產生到word文檔中
2:php把html中的內容產生到word文檔中時,不置中顯示問題,即會預設按照web視圖進行顯示。
3:php把html中的內容產生到word文檔中時,相關樣式不相容問題

本文: 複製代碼 代碼如下:echo '<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"/>
<xml><w:WordDocument><w:View>Print</w:View></xml>
<script src="includes/js/ztree/js/jquery-1.4.4.min.js" type="text/javascript"></script>
</head>';
echo '<body><table class="table_dayin">
<caption class="table_caption">';
echo "數字化教學系統電子備課稿<br>
<span>學科 <em style="border-bottom: 1px solid #545454;">語文</em>學校 <em style="border-bottom: 1px solid #545454;">實驗中學</em></span>
</caption>";
echo '</table></body></html>';
ob_start(); //開啟緩衝區
header("Cache-Control: public");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
if (strpos($_SERVER["HTTP_USER_AGENT"],'MSIE')) {
header('Content-Disposition: attachment; filename=test.doc');
}else if (strpos($_SERVER["HTTP_USER_AGENT"],'Firefox')) {
Header('Content-Disposition: attachment; filename=test.doc');
} else {
header('Content-Disposition: attachment; filename=test.doc');
}
header("Pragma:no-cache");
header("Expires:0");
ob_end_flush();//輸出全部內容到瀏覽器

註:以上代碼部分提供了在php程式檔案中產生內容到word文檔中並提供下載功能。
針對第2個問題,下載到本地的word文檔開啟後顯示預設按照web視圖進行顯示的問題:如:
按照預設web視圖顯示:

如果按照正常的整頁模式進行顯示的話,需要在頭部添加一行xml標示進行設定(藍色代碼部分):<xml><w:WordDocument><w:View>Print</w:View></xml>,添加後下載到本地的word文檔開啟後顯示如:

針對第三個問題就是有一些樣式不相容問題,比如頂部的大標題下面的相關屬性的底線標註顯示:

我們在html中的樣式中添加了border-bottom: 1px solid #545454;這個樣式(藍色代碼部分),即:<em style="border-bottom: 1px solid #545454;">,但是底線還是沒有顯示,因為在word中不識別。如:

解決方案就是按照word識別的下標樣式變更,即:<em style="text-decoration: underline;">,更改為這個樣式後,即在下載到本地的word文檔開啟後就有底線標示顯示了。

授之於魚,不如授之於漁,我把我的關於這個解決樣式不相容的解決方案給大家分享一下:

一:找個web版線上編輯器,然後在裡面隨便輸入幾個文字,然後添加底線標示

二:然後點擊編輯器上面的查看原始碼按鈕,可以看到剛才添加的那個底線標示的屬性即為text-decoration: underline;而不是html中的樣式標示:border-bottom: 1px solid #545454;

好了,針對以上相關問題就到這裡,如有問題請大家提出來,我們共同討論解決哈。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.