windows10服务器使用 php com组件获取word文档页数
1 执行php代码,当然报错,我还没有开启php com配置,与安装office软件
$word = new \com("word.application", null, CP_UTF8) or die("请安装word");
$file = 'E:\WWW\51c\66.docx';
$word->Visible = 0;
$word->Documents->Open($file,true,false);
$docRange = $word->ActiveDocument->Content;
echo $docRange->Information(4);//wdNumberOfPagesInDocument 页数
$word->Quit();
$word = null;2 打开php.ini ( 我用的是php7.2)
extension=php_com_dotnet.dll //把前面的分号去掉 com.allow_dcom = true //改为true disable_classes = com 把 com 删除,这行代码变为: disable_classes =
3 安装office
我安装的是 MicrosoftOffice64_V2013 (最初装的是2010版本,发现找不到 Microsoft Word 97 - 2003 文档 组件)
安装成功后可以在电脑看到

4 设置组件权限
 win+r : 输入 dcomcnfg 打开组件服务,然后双击 组件服务 ==> 双击 计算机 ==> 双击 我的电脑 ==> 打开 DCOM配置 
找到 Microsoft Word 97 - 2003 文档 然后右键点击属性。 
常规-》身分验证级别-》无

标识-》下列用户 然后填写你的服务器管理员帐号密码

5 添加组件服务
win+r : 输入 mmc -32 ,工具栏中选择 文件 -》 添加删除管理单元 ,然后单机 组件服务-》添加,点击确定



至此,在运行我的php代码,就不会报错了,也获取到 word页码
另外
获取ppt、excel 页码也是一样的操作

获取ppt 页码
$power = new \com("Powerpoint.Application");
$power->visible = true;
$power->Presentations->Open(realpath($fileUrl));
$pageCount =  $power->ActivePresentation->Slides->Count;  
$power->ActivePresentation->Close();
$power->Quit();     
return  $pageCount;获取pdf页码我用的是 imagick
if (!extension_loaded('imagick')) { //判断是否安装成功
  echo '/判断是否安装成功';
}
$im = new Imagick();
$fileUrl = './15.pdf';
if(!file_exists($fileUrl))
{ 
    echo '没有找到pdf' ;
    return false; 
}
$im->setResourceLimit($im::RESOURCETYPE_MEMORY, 1);
$im->setResourceLimit($im::RESOURCETYPE_MAP, 1);
$im->setResourceLimit($im::RESOURCETYPE_AREA, 1);
$im->setResourceLimit($im::RESOURCETYPE_FILE, 1);
$im->setResourceLimit($im::RESOURCETYPE_DISK, -1);
$im ->pingImage($fileUrl);
echo $im ->getNumberImages();exel没搞