ich probiere soeben Rahmen zu erstellen und diese in ein Writer-Dokument zu positionieren.
Meines Wissens nach funktioniert das mittels:
Code: Alles auswählen
oFrame.HoriOrientPosition = 1000 sowie
oFrame.VertOrientPosition = 1000
Code: Alles auswählen
oFrame.HoriOrient = com.sun.star.text.HoriOrientation.NONE
oFrame.VertOrient = com.sun.star.text.VertOrientation.NONE
Das wäre meine erste Frage: Welche Werte bleiben am Schluss - die in der Formatvorlage gespeicheten oder die per Makro übergebenen?
Das "echte" Problem liegt aber darin, dass ich die Höhe des erzeugten Frames auslesen möchte (oFrame.Height) und zu der vertikalen Position hinzuaddieren möchte, damit die Rahmen untereinander gezeichnet werden. Und das funktioniert nicht - die Rahmen werden erzeugt, liegen jedoch allesamt übereinander. Ich habe sie übrigens an der Seite verankert, eine Änderung dieser Einstellung hat auch nichts bewirkt.
Hier der Code:
Code: Alles auswählen
For aktZeile = 4 to letzteZeile ' 4 = Zeile 5, nach dem Standard-Kopf
oFrame = oDok.createInstance("com.sun.star.text.TextFrame")
oFrame.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE'AS_CHARACTER'AT_PAGE'AT_FRAME'AT_CHARACTER
oFrame.Sizetype=2 'The height property determines the minimum height of the object, but the actual height will be increased if the content demands it.
oFrame.TextWrap = com.sun.star.text.WrapTextMode.DYNAMIC'NONE 'THROUGHT für Durchlauf,'PARALLEL für Seitenumlauf,'DYNAMIC für dynamischer Seitenumlauf.
oFrame.FrameIsAutomaticHeight = TRUE
oFrame.HoriOrientPosition = horPos
oFrame.SetName(aktZeile)
oFrame.VertOrientPosition = vPos(1)
oFrame.HoriOrient = com.sun.star.text.HoriOrientation.NONE
oFrame.VertOrient = com.sun.star.text.VertOrientation.NONE
oText.insertTextContent(oCursor, oFrame, FALSE)
' ZUGRIFF
oFrames=oDok.getTextFrames()
oFrame=oFrames.getByName(aktZeile) 'oFrame=oFrames.getByIndex(0)
oFrameCursor=oFrame.createTextCursor()
oFrameCursor.ParaStyleName = sAbsatz
oFrameCursor.String=sInhalt
oFrameCursor.TextFrame.FrameStyleName= sStyle
nZaehler = nZaehler + 1
nFrHoehe = oFrame.Height
print "ermittelte Hohe des Frames: (oFrame.Height) = " & nFrHoehe & " Name des Rahmens = " & aktZeile & " rechte vertikale Position= " & vPos(1)
Next aktZeile
Weiß jemand Rat? Da wäre ich sehr dankbar!
LG Groby