MS Word 2013变体不引用自动化对象

时间:2015-04-06 14:36:25

标签: delphi ms-word

我刚刚从办公室升级到办公室2013.我的一个应用程序使用MSWord自动化将单词转换为pdf。

以下代码适用于Word 2007和2010,但不是我在调用MSApp.Documents.open时不断获得上述OLEError。代码如下。有谁知道出了什么问题?我还尝试将除了文件名之外的所有参数都删除到打开的调用,但是这仍然会因上述异常而失败

Function convertToPDF(filename:string);
var MSApp, doc:variant;
begin
MSApp := CreateOLEObject('Word.Application');
    try
      MSApp.visible:=false;

      MSApp:=MSApp.version;
      version:=trunc(strToFloat(MSApp));

      if version>11 
    then begin //should be greater than word 2003 so should have capability of printing to pdf
              Doc:=MSApp.Documents.Open(fileName, false, true, false);
              MSApp.ActiveDocument.SaveAs(outputfile, wdFormatPDF, emptyParam, emptyparam, false);
            end;
finally
    varclar(doc);
    msApp.quit;
end;
end;

1 个答案:

答案 0 :(得分:-2)

您应该使用saveas2(https://msdn.microsoft.com/en-us/library/ff836084%28v=office.14%29.aspx)。 Saveas不再是对象模型的一部分。