Open Office Writer und Page Orientation

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
onkeltorty
Beiträge: 1
Registriert: So 19. Nov 2023, 06:49

Open Office Writer und Page Orientation

Beitrag von onkeltorty »

Hallo,
ich suche hier eine Möglichkeit, im Open Office Writer mit OLE die Orientierung der Seite von Portrait auf Landscape zu ändern. Ich habe versucht, es mit UNO zu ändern, aber es ist scheinbar nur möglich, den Dialog für das Seitenformat aufzurufen ('.uno:PageDialog').
Weiß hier jemand, wie man das mit Lazarus programmiert?

Bin bis jetzt so weit gekommen:

Code: Alles auswählen

procedure TOleInterf.SetPageOrientation(bLandscape: boolean = false);
var
  vStyleFamilies, vPageStyles, vStandard, vNewStyle: variant;
begin
  vStyleFamilies := rDocs.vDocs[rDocs.byteActualDocument-1].StyleFamilies;
  vPageStyles := vStyleFamilies.getByName('PageStyles');

  If vPageStyles.hasByName('MyPageStyle1') Then vPageStyles.removeByName('MyPageStyle1');

  vNewStyle := rDocs.vDocs[rDocs.byteActualDocument-1].createInstance('com.sun.star.style.PageStyle');
  vNewStyle.Size.Width := 29700;  //DIN A4 Höhe
  vNewStyle.Size.Height := 21000; //DIN A4 Breite
  vNewStyle.isLandscape := bLandscape;
  vPageStyles.insertByName('MyPageStyle1', vNewStyle);

  //rDocs.vDocs[rDocs.byteActualDocument-1].PageStyle.isLandscape := true; //Erzeugt eine Exception

  vStandard:= vPageStyles.getByName('Standard');
  vStandard.isLandscape := bLandscape;
  //rDocs.vDocs[rDocs.byteActualDocument-1].PageStyle := vStandard; //Erzeugt eine Exception
end;                          
Leider kann ich den PageStyle nicht zuweisen und auch nicht direkt darauf über seine Member zugreifen ...

Antworten