PHP使用COM组件转换word文档为HTML并实现在线预览

PHP5.4

[CoM]
;path to a file containing GUlDs,llDs or filenames of files with TypeLibs
;http://php.net/com.typelib-filecom.typelib_file=

;allow Distributed-COM calls
;http://php.net/com.allow-dcom
com.allow dcom= true

PHP7.0

在php.ini中增加

[COM_DOT_NET]
extension=php_com_dotnet.dll

重启 php即可.

在根目录输入

<?php
error_reporting(E_ALL);
ini_set("display_errors","On");

$excel = new COM("Excel.application") or die ("ERROR: Unable to instantaniate COM!\r\n");

print_r(get_loaded_extensions());
?>

可以数组形式罗列php的现有组件.

执行程序

新建index.php, 默认传入3.doc , 然后运行就可以查看效果了.

<?php
/**
 * Created by PhpStorm.
 * User: zhangcanlong
 * Date: 2016/11/15
 * Time: 23:41
 */
function word2html($wordname,$htmlname)
{
    //获取链接地址
     /*
    //$url=$_SERVER['HTTP_HOST'];//获取服务器地址
    // $url=$url.$_SERVER['PHP_SELF'];//获取当前服务器下的文件名和目录
    // $url=dirname($url)."/";*/        //去除目录中的文件名
    $word = new COM("word.application") or die("找不到 Word 程序"); // 建立一个指向新COM组件的索引
    // 显示目前正在使用的Word的版本号
    //echo "Loading Word, v. {$word->Version}<br>";
    // 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)
    $word->Visible = 0;

     $word->Documents->Open($wordname) or die("无法打开这文件");

    header("Content-Type: text/html;charset=gb2312");//设置文件的格式
    //打开一个文档
    //把文档保存在目录中
    try{
        $word->Documents[1]->SaveAs($htmlname,8);
    } catch(Exception $e){
        print $e->getMessage();
    }
    $content=file_get_contents($htmlname);
    echo $content;//输出word文档的内容
    // 关闭与COM组件之间的连接
    $word->Quit();
    unset($word);
}

$fileName = '3.doc';
$wordName =  explode('.',$fileName)[0];
$wordExt = explode('.',$fileName)[1];
//获取当前文件下的目录
$file_Name=dirname(__FILE__);
if (is_file($wordName.'.html')) {
  echo file_get_contents($wordName.'.html');
}else{
  word2html("$file_Name\\".$wordName.".".$wordExt,"$file_Name\\".$wordName.".html");//要转换的word文件和转换成的html的文件名
}

可以看到当前目录的1.docx会生成1.html文件,另外网站展示1.html

参考:
http://php.net/manual/en/faq.com.php
http://www.phpnotes.top/2017/12/06/php/111/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值