Autor Beitrag
Barzi
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.12.10 22:57 
Hallo,
ich beschäftige mich schon seit einiger Zeit mit der OpenOffice API.
Ich habe eine Unit geschrieben, die den Umgang mit Calc-Dokumenten erheblich erleichert.
Allerdings bereitet mir der PDF-Export-Probleme, oder genauer weitere Einstellungen beim Export.
Ich kann die Angaben aus der API-Dokumentation noch nicht fehlerfrei umsetzen.
Hier mein bisheriger Code
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TCalcDocument.ExportToPDF(FileName: String);
  var
    oProperties, oFilterData, oOrientation: Variant;
begin
  if FOpen then
    begin
      FileName:= ConvertToURL(FileName);

      oFilterData:=  VarArrayCreate([0,1], varVariant);
      oFilterData[0] := oCalcDocument.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
      oFilterData[0].Name:= 'IsLandscape';
      oFilterData[0].Value:= true;

      oProperties := VarArrayCreate([03], varVariant);
      oProperties[0] := oCalcDocument.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
      oProperties[0].Name := 'FilterName';
      oProperties[0].Value := 'calc_pdf_Export';
      oProperties[1] := oCalcDocument.Bridge_GetStruct('com.sun.star.beans.PropertyValue');
      oProperties[1].Name := 'FilterData';
      oProperties[1].Value := oFilterData;


      // hier Änderung?

      oCalcDocument.storeToURL(FileName, oProperties);
    end;

end;

Soweit funktioniert der Export. Nun möchte ich auf Querformat umstellen:
Mein Ansatz:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
// Versuch 1:
oOrientation:= CreateUnoStruct('com.sun.star.view.PrinterDescriptor');
oOrientation.PaperOrientation:= 1;
// Fehler: Impossible to create service ...
// Versuch 2:
oOrientation := oCalcDocument.Bridge_GetStruct('com.sun.star.view.PaperOrientation');
oOrientation:= 1;   
// Fehler: Unknown structure name

Habt ihr eine Idee, wie man die Option ändern kann?