下面一段代碼給大家介紹php將html轉入word中,具體內容如下所示:
這是經過測試的,這種方法有一點不好,html頁面代碼要寫在php中,不過好歹能運行,看程序
<?php
class word{
function start(){
ob_start();
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">';
}
function save($path)
{
echo "</html>";
$data = ob_get_contents();
}
function wirtefile($fn,$data){
$fp=fopen($fp,$data);
fwrite($fp,$data);
}
}
$html='
<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>
';
//批量生成
//for($i=1;$i<3;$i++){
$word = new word();
$word->start();
$wordname='個人測試php生成word.doc';
echo $html;
$word->save($wordname);
header('Content-type:application/word');
header('Content-Disposition: attachment; filename='.$wordname.'');
//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('D:/www/test/6.docx','D:/www/test/6.html');
注意:
1. 轉換出來的html,查看源碼,比較亂的
2. 轉換過程中會調用winword.exe
3. 如果頁面一直在加載,把文檔重命名,然後在重新轉。