将WORD文件转换成HTML文件的路径问题,要实现这个功能,我从网上搜索了几乎所有的方案,可以都不成功。代码如下:
function word2html($wfilepath){
$word=new COM("Word.Application") or die("无法打开 MS Word");
$word->visible = 1 ;
$word->Documents->Open($wfilepath) or die("无法打开这个文件"); <span style="color:#FF6666;">A. 这个一直报错,因为没有使用过COM组件,所以不确定COM组件是否安装成功</span>
$htmlpath=substr($wfilepath,0,-4);
<span style="color:#3333FF;"> $word->ActiveDocument->SaveAs($htmlpath,8);</span> B.注解
$word->quit(0);
}
word2html('d:/works/test.doc');
print( "Word转html完成!" );
B.这句代码中,参数8的意思就转成什么格式的文件,我需要的是单htm文件,如果是8的话,会转成一个htm和一个文件夹(里面放htm需要调用的文件,时间跟word另存为html格式一样,而我用了参数10,只生成一个htm文件,而没有那个文件夹,这个应该就是另存为中的“筛选过的网页(htm及html)”这个真是我需要的!
B.
<span style="color:#3333FF;"> $word->ActiveDocument->SaveAs($htmlpath,8);</span> B.注解
这句代码中,参数8的意思就转成什么格式的文件,我需要的是单htm文件,如果是8的话,会转成一个htm和一个文件夹(里面放htm需要调用的文件,时间跟word另存为html格式一样,而我用了参数10,只生成一个htm文件,而没有那个文件夹,这个应该就是另存为中的“筛选过的网页(htm及html)”这个真是我需要的!这里我感觉应该跟office的版本相对应,所以先看看在另存为中,有多少个选项,可以一个个的试。
A.
在这里我看了http://blog.163.com/dupingjin@126/blog/static/2086721720130735827677/这里的文章,用文章中的方法,测试了COM组件是否安装成功。文章内容如下:
1.先到PHP.INI中打开COM选项,com.allow_dcom = true
2.
我这里的环境是PHP5.4.7,
PHP 5.4.5后,com/dotnet 模块已经成了单独的扩展,所以需要在PHP.ini中配置extension=php_com_dotnet.dll
,如果PHP VERSION<5.4.5 则不需要。否则的话,可能就是报错 Fatal error: Class 'COM' not found 了。
配置方法为:只需在扩展列表里添加
extension=php_com_dotnet.dll即可
3.
另外需要了解的是,COM组件虽然也是DLL扩展,但它不是PHP扩展,所以把Senc.dll拷贝到php/ext 目录,然后在PHP.INI里加载是错误的,PHP也不认识它。
配置完毕后可以测试下,语句为
$word = new COM("word.application") or die("Unable to instanciate Word");
print "Loaded Word, version {$word->Version}\n";
上面语句本机必须安装了office才可以
openoffice的为:
$obj = new COM("com.sun.star.ServiceManager")
or die("Unable to instanciate Word");
我使用
$word = new COM("word.application") or die("Unable to instanciate Word");
print "Loaded Word, version {$word->Version}\n";
下面是一个小的示例:(注意打开的路径写法)
$word = new COM("word.application") or die("Unable to instanciate Word");
print "Loaded Word, version {$word->Version}\n<br>";
//将其置前
$word->Visible = 0;
//打开一个文档
<span style="color:#FF0000;">$word->Documents->Open("D:\\wamp\\www\\test\\1.doc");</span>
//随便做些事情
echo $word->ActiveDocument->content->Text;
//关闭 word
$word->Quit();
我看到实例前面有个提示:
(注意打开的路径写法),于是我把文件的路径单斜杠都改为双斜杠,看到了想要的画面,这里很多文章里没有说清楚,让我走了很多弯路,希望我的这篇文章能给需要帮助的童鞋们一点启示。
上面的种种,是基于本机必须安装了office才可以。