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

Delphi MS Word 2013变体未引用自动化对象,delphi,ms-word,Delphi,Ms Word,我刚刚从office升级到office 2013。我的一个应用程序使用MSWord自动化将word转换为pdf 下面的代码在Word 2007和2010中运行正常,但在调用MSApp.Documents.open时,我一直遇到上述错误。代码如下。有人知道出了什么问题吗?我还尝试剥离除文件名以外的打开调用的所有参数,但这仍然会失败,出现上述异常 Function convertToPDF(filename:string); var MSApp, doc:variant; begin MSApp :

我刚刚从office升级到office 2013。我的一个应用程序使用MSWord自动化将word转换为pdf

下面的代码在Word 2007和2010中运行正常,但在调用MSApp.Documents.open时,我一直遇到上述错误。代码如下。有人知道出了什么问题吗?我还尝试剥离除文件名以外的打开调用的所有参数,但这仍然会失败,出现上述异常

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;

您应该使用saveas2()。“另存为”不再是对象模型的一部分。

您确定这是否有效?我很确定它没有。或者你的真实代码不是你上面展示的代码。这似乎非常可疑:
MSApp:=MSApp.version您正在用版本号覆盖Word对象…您发布的代码从未在任何Delphi版本中工作过,因为它完全不正确。谢谢Ken,但请准备好我下面的评论。我解释过了,谢谢。我对我的代码做了一些整理,它似乎出了严重的错误。导致问题的原因是将版本分配给msApp。我不知道那是怎么来的。现在已更正,工作正常。