我刚刚从办公室升级到办公室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;
答案 0 :(得分:-2)
您应该使用saveas2(https://msdn.microsoft.com/en-us/library/ff836084%28v=office.14%29.aspx)。 Saveas不再是对象模型的一部分。