下面一段代码给大家介绍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. 如果页面一直在加载,把文档重命名,然后在重新转。
本文地址:https://www.stayed.cn/item/4720
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我