实例详解PHP中html word 互转的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-07-07 14:13:59 浏览: 评论:0
这篇文章主要介绍了实例详解PHP中html word 互转的方法的相关资料,涉及到php html word互转的相关知识,本文介绍的非常详细,具有参考借鉴价值。
下面一段代码给大家介绍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. 如果页面一直在加载,把文档重命名,然后在重新转。
Tags: PHP+html PHP+word
相关文章
- ·php+html5基于websocket实现聊天室的方法(2021-06-13)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)