zoukankan      html  css  js  c++  java
  • php实现ppt转图片,php调用com组件问题

     PHP 调用com组件将ppt转为图片。

    需要在php.ini中开启

    extension=php_com_dotnet.dll
    com.allow_dcom = true
     
    测试代码如下:
     
    <?php
    $powerpnt = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint");
    $file='1.ppt';
    echo realpath($file);
    
    $addr = $_SERVER['DOCUMENT_ROOT'].'/ppt/1.ppt';
    echo $addr;
    $presentation = $powerpnt->Presentations->Open($addr, false, false, false) or die("Unable to open presentation");
    
    
    $presentation->Fonts->Replace('黑体','幼圆');
    $presentation->Fonts->Replace('MS Gothic','幼圆');
    $presentation->Fonts->Replace('方正粗倩简体','幼圆');
    $presentation->Fonts->Replace('方正小标宋简体','幼圆');
    $presentation->Fonts->Replace('Arial Black','幼圆');
    $presentation->Fonts->Replace('华文中宋','幼圆');
    $presentation->Fonts->Replace('Arial Unicode MS','幼圆');
    $presentation->Fonts->Replace('方正细圆简体','幼圆');
    $presentation->Fonts->Replace('Times New Roman','幼圆');
    
    
    foreach($presentation->Fonts as $c)
    {
    	echo $c->name."<br />";
    	//echo $c->Replace('','');
    }
    
    
    foreach($presentation->Slides as $slide)
    {
    $slideName = "Slide_" . $slide->SlideNumber;
    $uploadsFolder = 'iii';
    $exportFolder = realpath($uploadsFolder);
    $slide->Export($exportFolder."//".$slideName.".jpg", "jpg", "1920", "1080");
    }
    $presentation->Close();
    $powerpnt->Quit();
    $powerpnt = null;
    ?>
    

      

    在win7上跑,没问题,放到2008上面出现错误,有一种exception叫unknown...

    解决方案:

    cmd -》 dcomcnfg

    参考网址:

    http://blog.csdn.net/bleurever/article/details/50783133

    2018年2月26日续

    按照上述方法解决后发现交互式用户有以下问题,必须要有用户登录系统才能使用,否则报错如下:

    PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `powerpoint.application': 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。

    解决方法,指定用户,还不能是administrator用户,必须新建一个。

    在安全,选项卡中,所有权限选自定义,给上面选择的用户授予全部权限。

    搞定!

    --------------------------------------------------------------------------------

    交互式用户(The interactive user): 这是推荐的选项, 以当前登录到系统的用户确定对象的身份(当前必须有用户登录到系统, 如果用户注销那么对象也会被销毁);
    启动用户(The launching user): 以调用的客户端的用户确定对象的身份, 一个缺点就是这个对象不能再进行远程调用;

  • 相关阅读:
    ajax收藏
    excel提取文本格式时分秒中数字的方法并计算成秒的公式
    vi编辑模式中按方向键变ABCD的解决方法
    IIS配置Url重写实现http自动跳转https的重定向方法
    IIS中启用目录浏览功能后不能下载未知扩展名文件的解决方法
    Nginx禁止IP访问,只允许域名访问
    nginx在Window平台http自动跳转https设置方法
    通过清理注册表方式清理window远程连接的历史记录
    DOS批处理添加IP域名,备份与恢复
    windows修改snmp端口号方法
  • 原文地址:https://www.cnblogs.com/dwj192/p/7019374.html
Copyright © 2011-2022 走看看