下面一段代码给大家介绍php将html转入word中,具体内容如下所示:
这是经过测试的,这种方法有一点不好,html页面代码要写在php中,不过好歹能运行,看程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
<?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文件夹下,有该扩展
代码如下:
1
|
extension=php_com_dotnet.dll
|
然后重启就OK了
1
2
3
4
5
6
7
8
9
10
11
|
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. 如果页面一直在加载,把文档重命名,然后在重新转。