1

ここで説明した手法を使用して、OpenofficeのActiveXを使用して(ドキュメントファイルから)PDFファイルを作成することに成功しました。

最近、smae OOバージョン(3.3)を使用すると、この行のコードは機能しなくなります(上記のリンクのコードを参照してください)。

FilterParams[0] := CreateProperty('FilterName', AnsiString('writer_pdf_Export'));

EOLESysError "BadVariableType"が発生しました。

問題を解決するために手を貸していただけませんか。

4

1 に答える 1

0

この質問を読んだ後、私はこの方法で問題を解決しました:

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;
于 2012-06-01T08:48:21.030 に答える