Had the same problem and solved it with running a counter for eevry page and keep track off the cursor position on the page where we are inserting a frame. Then you have to place the new frame anywhere on the page, fil the frame with the text and with the "frame cursor" you can measur the hight of the filled-frame and then just reposition the frame on the page or on a new page if there is not enough place (hight) on the current page.
Maybe  a peace of OObasic code can help you further
Dim oFrame As Object
oFrame = oDoc.createInstance("com.sun.star.text.TextFrame")
oFrame.SetPropertyValue("AnchorPageNo", iPagenr)
   oFrame.AnchorType = lAnchor
   oFrame. BackColorTransparency = 100
   oFrame.PositionProtected = True
   oFrame.SizeProtected = True
   oFrame.ContentProtected = True
oFrame.width = iFotW - AflpL - AflpR
oFrame.HoriOrient = NONE
oFrame.VertOrient = NONE
oFrame.VertOrientRelation = PAGE_PRINT_AREA oFrame.HoriOrientRelation = PAGE_PRINT_AREA

aLBorder.OuterLineWidth  = 0
aRBorder.OuterLineWidth  = 0
aTBorder.OuterLineWidth  = 1
aTBorder.Color  = rgb(254,254,254)
aBBorder.OuterLineWidth  = 1
aBBorder.Color  = rgb(254,254,254)
oFrame.LeftBorder = aLBorder
oFrame.RightBorder = aRBorder
oFrame.TopBorder = aTBorder
oFrame.BottomBorder = aBBorder
oframe.TopMargin = 200 'wrap aanzetten, anders wordt het automatisch 2mm
oFrame.BottomMargin = 100
oFrame.LeftMargin = 0
oFrame.RightMargin = 0
oFrame.BottomBorderDistance = iif(oDialog.Model.OndBoven.State = 1 , 172, 0)
oFrame.TopBorderDistance =  iif(oDialog.Model.OndOnder.State = 1 , 172 , 0)

'oFrame.HoriOrient = com.sun.star.text.HoriOrientation.NONE
'oFrame.VertOrient = com.sun.star.text.VertOrientation.LINE_TOP

oText.insertTextContent(oCursor(), oFrame, false)

sOnderschrift = oTextModel.GetPropertyValue("Text")

dim iStringhoogte as long
iStringhoogte = Fix((Len(sOnderschrift)/67*9400/(iFotW-AflpR-AflpL))) +1
Dim IFramehoogte_alsboven as integer
Dim iFramehoogte_alsonder as integer

' iFramehoogte_alsboven = (IStringhoogte *(-345)) - 172 -
' iFramehoogte_alsonder = iFoth
oFrame.HoriOrientPosition = iHCpos + 900  'left Pagemargin


Dim oFrameCursor As Object
oFrameCursor = oFrame.createTextCursor()
oFrameCursor.paraStyleName = "6_ondertitel"
oViewCursor.gotoRange(oFrameCursor,false)
'FrameCursor.paraAdjust = com.sun.star.style.ParagraphAdjust.CENTER
'Dim frameCPos as integer
Dim FrameCpos as integer
Dim FrameH as integer
FrameCpos = oViewCursor.getPosition().Y

'print FrameCpos
oFrameCursor.String = sOnderschrift
'oFrame.SizeType = 2
oViewCursor.gotoEnd(false)

FrameH = oViewCursor.getPosition().Y - FrameCpos + 345 + 200

iFramehoogte_alsboven = (FrameH * (-1))
iFramehoogte_alsonder = iFoth
oFrame.VertOrientPosition = iVCpos - AflpB + iif(oDialog.Model.OndBoven.State = 1 , iFramehoogte_alsboven , iFramehoogte_alsonder) + iif(oDialog.Model.viaCursor.State = 1 , 1080 , 1100)
oFrame.Height = FrameH
oFrame.SizeType = 1
' oFrame.VertOrientPosition = iVCpos - AflpB + iif(oDialog.Model.OndBoven.State = 1 , iFramehoogte_alsboven , iFramehoogte_alsonder ) + iif(oDialog.Model.viaCursor.State = 1 , 1080 , 1100)



'oFrame.Name = "Ond" + "_" + iPagenr + "_" + iHCpos +"_" + iVCpos + "_" + (tot + 1) ' moet telkens uniek zijn
oFrame.Name = "Ond" + "_" + iPagenr + "_" + oFrame.Zorder

oViewCursor.gotoRange(oCursor,false)

fernand


Kent Gibson schreef:
Is there any way I can ask a frame if any part of it
is in the non - printable area?
If any one has any ideas I would be very appreciative
and I will be happy to submit a snippet for it. I am
planning on submitting a couple of frame snippets
already.

Sorry for the deluge of questions. But this frame
problem is turning out to be a real project killer.

I am having a problem that I cannot get frames to
break neatly at the page borders. I have tried frames
in paragraph styles, frames in frames, tables in
tables, frames in tables and frames in sections. All
these ways have their different quirks but they leave
something to be desired in the end effect. Furthermore
I would like these frames to be inside of some
container that shows borders (ie paragraphs or
tables).
The only way I think I can figure it out is if I force
a page break when one of the frames starts to creep
outside of the margins. Alternatively if I could just
ask how big a frames was once it had content then I
could measure and know it was outside the margins, but
I can never get this to work. When I query absolute
height I get a constant back for frames with varying
height. Maybe I am doing that wrong though.
Like I said any help would be great. This is probably
our last major hurdle with OpenOffice. It is a great
program. Thanks for your efforts.

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to