我成功地使用此处讨论的技术使用 Openoffice 的 ActiveX 创建 pdf 文件(从 doc 文件)。
最近,使用 smae OO 版本(3.3),代码不再起作用,在这一行(请参阅上面链接中的代码):
FilterParams[0] := CreateProperty('FilterName', AnsiString('writer_pdf_Export'));
我得到了 EOLESysError“错误的变量类型”。
你能帮我解决这个问题吗?
我成功地使用此处讨论的技术使用 Openoffice 的 ActiveX 创建 pdf 文件(从 doc 文件)。
最近,使用 smae OO 版本(3.3),代码不再起作用,在这一行(请参阅上面链接中的代码):
FilterParams[0] := CreateProperty('FilterName', AnsiString('writer_pdf_Export'));
我得到了 EOLESysError“错误的变量类型”。
你能帮我解决这个问题吗?
阅读此问题后,我以这种方式解决了问题:
function CreateProperty(const AName: AnsiString; const AValue: Variant): Variant;
begin
Result := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
Result.Name := AName;
Result.Value := AValue;
end;
变成
function CreateProperty(const AName: AnsiString; const AValue: Variant): Variant;
var
AVal : Variant;
begin
Result := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
Result.Name := AName;
AVal := AValue; // this is done to avoid 'Bad Variable Type'
Result.Value := AVal;
end;
您也可以通过删除参数来解决const
它AValue
:
function CreateProperty(const AName: AnsiString; AValue: Variant): Variant;
begin
Result := StarOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
Result.Name := AName;
Result.Value := AValue;
end;