将WORD文件转换成HTML文件的路径问题

  将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";
这两句测试确定配置没有问题,接着我搜索到 http://haofish.cn/90.html 这个网页,在这个页面最下面,有个实例,如下:

下面是一个小的示例:(注意打开的路径写法)

$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才可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值