php 调用 com组件,进行word操作,详情步骤

时间:2024-04-06 08:03:30

步骤一、php开启COM组件

查看php.ini中是否已经开启了com.allow_dcom = true

从php/ext/里面查找一下有没有这个php_com_dotnet.dll这个文件

如果没有网上下载个,一般都会有的吧应该大概可能。。

然后查找这个php.ini里面查找下#extension=php_com_dotnet.dll把前面的#号去掉

如果找不到就复制,手动添加一下

然后输出下phpinfo()

看看有没有com_dotnet
COM support enabled
DCOM support enabled
.Net support       enabled

表示COM组件开启成功

然后新建一个php文件在里面写上:

$com = new COM('word.application');  (#注意word.application 是电脑中必须有word文档才可以的)
echo $com;

如果没错的话应该会显示    Microsoft Word
说明COM扩展已经安装完成了!

步骤二、开启PHP调用Word组件DCOM权限

未开启权限前,调用 $word->Documents[1]->SaveAs(‘test.doc’);  时报错:Call to undefined method variant::SaveAs()。原因是PHP没有调用Word组件DCOM权限。开启权限如下:

1. 首先必须要在电脑上安装 Office

2. windows+r : 输入 dcomcnfg.exe 打开组件服务,然后双击 组件服务 ==> 双击 计算机 ==> 双击 我的电脑 ==> 打开 DCOM配置 
找到 Microsoft Word 97 - 2003 文档 然后右键点击属性。 
出现如下页面: 
php 调用 com组件,进行word操作,详情步骤

将身份验证级别设为 

3. 然后点击 安全 将所有下图中红圈出现的地方设置为自定义,然后每个添加 Everyone 用户组,并将权限设置为全部(全打上勾就OK) 
然后点击 标识 那一部分,将其选为 下列用户 用户填的是管理员用户,密码就是本机密码。 
php 调用 com组件,进行word操作,详情步骤

4. 特殊的如果在第 2 步找不到 Microsoft Word 97 - 2003 文档 部分,那么在运行那儿输入 mmc -32 然后在工具栏中选择 文件 然后选择 添加删除管理单元 ,然后单机 组件服务 将其添加,点击确定。 
php 调用 com组件,进行word操作,详情步骤

然后点击 组件服务节点 剩下的就跟上面的流程一样了,重复 步骤二和步骤三。

5. 接下来我们将word所需要操作的文件夹的权限添加 Everyone 权限, 至此问题解决。

转载自:https://blog.csdn.net/qingshui23/article/details/78867532