2011-06-04 33 views
1

我们使用来自PHP的application.word COM对象在后台将Word文件转换为PDF。Doc to PDF转换使用php和Word。如何处理未知文件?

这工作得很好用下面的代码:

$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 */); 

(异常处理冷落为了简洁)

但是,如果词不承认它会打开一个对话框的文件类型询问格式,阻止我们的PHP脚本。据我了解这里的文档:

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

第二个参数,该参数设置为false,应取消此对话框。

有没有什么办法可以压制这个对话框,并且让单词无法用例如打开文件失败。例外?

我们在虚拟机在服务器上使用Word 2007和脚本是由Web应用程序触发的,所以只需手动按下取消该对话框上是不是最好的选择...

编辑:改变com呼叫,如第一个答案中的建议。虽然不起作用。

回答

0

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

+0

不幸的是,它不起作用。我们改变了命令(参见编辑的问题)仍然是同样的问题... – kbeyer 2011-06-04 11:34:23