我们使用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脚本。据我了解这里的文档:
第二个参数(设置为false)应禁止此对话框。
是否有任何方法可以取消此对话框并使单词无法打开文件,例如例外?
我们在虚拟机中的服务器上使用Word 2007,并且该脚本由Web应用程序触发,因此只需在对话框上手动按取消就不是最佳选择...
编辑:按照第一个答案中的建议更改为com调用。虽然不起作用。
答案 0 :(得分:0)
我认为您需要在该页面上进一步阅读。您可能需要NoEncodingDialog
参数。压缩对话框后,我不确定Open是否会抛出异常。可能是它返回null,所以一定要测试它是哪一个。