Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过php中的COM在windows中使用密码打开docx?_Php_Window_Ms Office - Fatal编程技术网

如何通过php中的COM在windows中使用密码打开docx?

如何通过php中的COM在windows中使用密码打开docx?,php,window,ms-office,Php,Window,Ms Office,我有一个docx文件,知道密码 如何通过COM对象将密码作为参数传递以打开它 也就是说,我希望它在后台运行 这是我的密码: $word = new COM("Word.Application"); $word->Visible = 0;//set 0 to operate it at background $word->DisplayAlerts = 0; if(file_exists ($document))

我有一个docx文件,知道密码

如何通过COM对象将密码作为参数传递以打开它

也就是说,我希望它在后台运行

这是我的密码:

        $word = new COM("Word.Application");
        $word->Visible = 0;//set 0 to operate it at background
        $word->DisplayAlerts = 0;

        if(file_exists ($document))
        {
            $word->Documents->Open($document);
            return $word;
        }
        else
            return false;
文件加密后,office将打开并要求我输入密码

我试过了,就是

$word = new COM("Word.Application", 
                array( 'Server' => '127.0.0.1', 
                       'Username' => 'foo', 
                       'Password' => 'bar' ), 
                CP_UTF8); 
但是,它不起作用

办公室还开着,问我密码


有人知道如何做到这一点吗?

Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在这种环境下运行Office时,Office可能会表现出不稳定的行为和/或死锁。

如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用安全的组件来无人值守地执行。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果使用服务器端解决方案中的Office应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将面临整体解决方案稳定性方面的风险


您可以在文章中了解更多信息。

谢谢您的回复。最后,我使用Windows服务器作为转换器,linux服务器作为数据库。