【问题标题】:Doc to PDF conversion using php and Word. How to handle unknown files?使用 php 和 Word 将文档转换为 PDF。如何处理未知文件?
【发布时间】:2011-09-08 08:02:11
【问题描述】:

我们使用 PHP 的 application.word COM 对象在后台将 Word 文件转换为 PDF。

下面的代码效果很好:

$this->com = new COM('word.application');
$this->com->Visible = false;
$this->com->DisplayAlerts = false;
$this->com->Documents->Open($from /* Filename */, false /* ConfirmConversions */,  
                            true /* ReadOnly */, false /* AddToRecentFiles */, 
                            '' /* PasswordDocument */, '' /* PasswordTemplate */, 
                            false /* Revert */, '' /* WritePasswordDocument */, 
                            '' /* WritePasswordTemplate */, 0 /* Format */, 
                            NULL /* Encoding */, true /* Visible */, 
                            false /* OpenAndRepair */, NULL /* DocumentDirection */, 
                            true /* NoEncodingDialog */, '' /* XMLTransform */);

(为简洁起见,省略了异常处理)

但是,如果 word 无法识别文件类型,它会打开一个询问格式的对话框,从而阻止我们的 php 脚本。据我了解这里的文档:

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open%28v=Office.11%29.aspx

设置为 false 的第二个参数应该禁止此对话框。

有没有什么办法可以抑制这个对话框并使 word 无法打开文件,例如异常?

我们在虚拟机的服务器上使用 Word 2007,脚本由 Web 应用程序触发,因此简单地手动按下对话框上的取消不是最佳选择...

编辑:按照第一个答案中的建议更改为 com call。还是不行。

【问题讨论】:

    标签: php pdf com ms-word automation


    【解决方案1】:

    我认为您需要在该页面上进一步阅读。您可能需要NoEncodingDialog 参数。抑制对话框后,我不确定 Open 是否引发异常。可能是它返回null,所以一定要测试它是哪个。

    【讨论】:

    • 不幸的是它不起作用。我们更改了命令(请参阅编辑的问题)仍然是同样的问题...
    猜你喜欢
    • 2018-06-03
    • 1970-01-01
    • 2015-03-21
    • 2011-11-10
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2011-03-02
    • 2019-04-04
    相关资源
    最近更新 更多