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;