首頁 > 後端開發 > php教程 > 在php程式中將網頁產生word文件並提供下載的實例程式碼

在php程式中將網頁產生word文件並提供下載的實例程式碼

PHP中文网
發布: 2023-02-28 21:42:01
原創
4370 人瀏覽過

在php程式檔案中產生內容到word文件中並提供下載功能的實作程式碼,需要的朋友可以參考下

在這篇文章中主要解決兩個問題:
1:在php中如何把html中的內容生成到word文件中
2:php把html中的內容產生到word文件中時,不居中顯示問題,即會預設依照web視圖顯示。
3:php把html中的內容產生到word文件中時,相關樣式不相容問題
正文: 

echo &#39;<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>&#39;; 
echo &#39;<body><table class="table_dayin"> 
<caption class="table_caption">&#39;; 
echo "数字化教学系统电子备课稿<br> 
<span>学科 <em style="border-bottom: 1px solid #545454;">语文</em>学校 <em style="border-bottom: 1px solid #545454;">实验中学</em></span> 
</caption>"; 
echo &#39;</table></body></html>&#39;; 
ob_start(); //打开缓冲区 
header("Cache-Control: public"); 
Header("Content-type: application/octet-stream"); 
Header("Accept-Ranges: bytes"); 
if (strpos($_SERVER["HTTP_USER_AGENT"],&#39;MSIE&#39;)) { 
header(&#39;Content-Disposition: attachment; filename=test.doc&#39;); 
}else if (strpos($_SERVER["HTTP_USER_AGENT"],&#39;Firefox&#39;)) { 
Header(&#39;Content-Disposition: attachment; filename=test.doc&#39;); 
} else { 
header(&#39;Content-Disposition: attachment; filename=test.doc&#39;); 
} 
header("Pragma:no-cache"); 
header("Expires:0"); 
ob_end_flush();//输出全部内容到浏览器
登入後複製

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

如果按照正常的頁面視圖進行顯示的話,需要在頭部加入一行xml標示進行設定(藍色程式碼部分):Print,新增後下載到本機的word文檔打開後顯示如下圖:

 

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

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

 

解決方法就是按照word識別的下標樣式進行更改,即:,更改為這個樣式後,即在下載到本地的word文件開啟後就有底線標示顯示了。

 

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

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

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

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

相關文章:

php使用phpword產生word文檔

php匯出產生word的方法

PHPword文檔的三種實作方式

🎜🎜
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板