首頁  >  文章  >  後端開發  >  實例詳解PHP中html word 互轉的方法

實例詳解PHP中html word 互轉的方法

不言
不言原創
2018-06-05 14:51:503646瀏覽

這篇文章主要介紹了實例詳解PHP中html word 互轉的方法的相關資料,涉及到php html word互轉的相關知識,本文介紹的非常詳細,具有參考借鑒價值

#下面一段程式碼介紹php將html轉入word中,具體內容如下圖:

這是經過測試的,這種方法有一點不好,html頁面程式碼要寫在php中,不過好歹能運行,看程式

<?php 
class word{
function start(){
ob_start();
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">&#39;; 
}
function save($path)
{
echo "</html>";
$data = ob_get_contents();
}
function wirtefile($fn,$data){
$fp=fopen($fp,$data);
fwrite($fp,$data);
}
}
$html=&#39;
<table width=600 cellpadding="6" cellspacing="1" style="border:1px solid green;" style="border-collapse:collapse"> 
<tr style="border:1px solid green;"> 
<td style="border:1px solid green;">姓名</td> 
<td style="border:1px solid green;">性别</td>
<td style="border:1px solid green;">年龄</td>
<td style="border:1px solid green;">爱好</td>
<td style="border:1px solid green;">备注</td> 
</tr> 
<tr style="border:1px solid green;"> 
<td style="border:1px solid green;">张三</td> 
<td style="border:1px solid green;">男</td>
<td style="border:1px solid green;">32</td>
<td style="border:1px solid green;">足球</td>
<td style="border:1px solid green;">无</td> 
</tr> 
<tr style="border:1px solid green;"> 
<td style="border:1px solid green;"> 
李四 
</td> 
<td style="border:1px solid green;">男</td><td style="border:1px solid green;">43</td><td style="border:1px solid green;">篮球</td><td style="border:1px solid green;">无</td>
</tr> 
</table> 
&#39;;
//批量生成
//for($i=1;$i<3;$i++){
$word = new word();
$word->start();
$wordname=&#39;个人测试php生成word.doc&#39;;
echo $html;

$word->save($wordname);
header(&#39;Content-type:application/word&#39;);
header(&#39;Content-Disposition: attachment; filename=&#39;.$wordname.&#39;&#39;);
//readfile($wordname);
ob_flush();//每次执行前刷新缓存
flush();
//}
?>

##下面跟大家分享一段程式碼php實作word轉html的方法

要完美解決,office轉pdf或html,最好還是用windows office軟體,libreoffice不能完美轉換,wps沒有api。

先確認com模組是否開啟,phpinfo裡面如果有com_dotnet模組,說明已開啟,如果沒有,修改php.ini,

程式碼如下:

#com.allow_dcom = true

前面的註解去掉,重啟就OK了,php官方網站說,php5.4.5之前,com模組是內建的,其實不一定全是,官網下的php 5.3.39,com模組就沒有內建。

如果不是內建模組的話,php.ini加上,前提你的ext資料夾下,有該擴充包

#程式碼如下:

extension=php_com_dotnet.dll

然後重啟就OK了

function word2html($wordname,$htmlname)
{
$word = new COM("word.application") or die("Unable to instanciate Word");
$word->Visible = 1;
$word->Documents->Open($wordname);
$word->Documents[1]->SaveAs($htmlname,8);
$word->Quit();
$word = null;
unset($word);
}
word2html(&#39;D:/www/test/6.docx&#39;,&#39;D:/www/test/6.html&#39;);

#注意:##1.轉換出來的html,查看源碼,比較亂的


2. 轉換過程中會調用winword.exe


3. 如果頁面一直在加載,把文檔重命名,然後在重新轉。

以上是實例詳解PHP中html word 互轉的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn