Thanks,

I translated the macro to C++ and the approach seems to work quite well. I
first iterate from the end to the start of the  document inserting pagebreak
markers (ie. pagebreak bookmarks) with paragraphs. Then I iterate forwards
checking the properties of the paragraph to find the start of a new page. 

This works well for paragraphs. However, there is a problem with tables. If
a paragraph is a table and I insert a book mark is the bookmark a property
of the table "paragraph" or the table cell containing a paragraph? 

This is an issue since a table can span the page break (ie. a table accross
mutiple pages.)

Ian


Frank Meies - Sun Germany - Development - Software Engineer wrote:
> 
> On 03/05/07 08:44, Frank Meies - Sun Germany - Development - Software 
> Engineer wrote:
> 
>> On 03/02/07 13:45, ianmcr wrote:
>> 
>>> I'm fairly new to OOo. I'm working on an export filter to produce 
>>> accessible
>>> html. I'm iterating over the text and identifying paragraphs, tables
>>> etc.
>>> However, I need a reliable method of identifing soft page breaks.
>>> (At the minute I use the page cursor to insert a marker string at the 
>>> end of
>>> each page. However, this causes problems with renumbering lists,
>>> headings
>>> etc). 
>> 
>> maybe you should use bookmarks instead of strings to mark the end of 
>> each page.
> 
> This little macro inserts bookmarks at the positions of the automatic 
> page breaks. This way, the automatic page break can be identified in the 
> content.xml file. Note that the document needs to have a layout, 
> otherwise the page cursor cannot work correctly.
> 
> Sub MarkPageBreaks
>       xDoc = thiscomponent
>       xText = xDoc.getText
>       xController = xDoc.getcurrentcontroller
>       xViewCursor = xController.getViewCursor
>       xViewCursor.jumpToFirstPage
>       xViewCursor.jumpToEndOfPage
>       Dim args2() as new com.sun.star.beans.PropertyValue
>       pages = xdoc.getrenderercount( xDoc, args2() )
> 
>       for j = 0 to pages - 1
>               xbookmark =     
>               xdoc.createinstance("com.sun.star.text.Bookmark")
>               xbookmark.Name = "PageBreakMark"
>               xText.inserttextcontent(xViewCursor, xbookmark,true)
>               xViewCursor.jumpToNextPage
>               xViewCursor.jumpToEndOfPage
> 
>       next j
> End Sub
> 
> Best regards,
> 
> Frank
> 
>> 
>> Best regards,
>> 
>> Frank
>> 
>> -- 
>> Frank Meies (fme) - OpenOffice.org Writer
>> OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
> 
> 
> -- 
> Sun Microsystems GmbH      Frank Meies
> Nagelsweg 55               Software Engineer
> 20097 Hamburg, Germany     Phone: (+49 40)23646 671
> http://www.sun.de          mailto:[EMAIL PROTECTED]
> 
> --
> Frank Meies (fme) - OpenOffice.org Writer
> OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Finding-automatic-page-breaks-tf3333417.html#a9328498
Sent from the openoffice - dev mailing list archive at Nabble.com.

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

Reply via email to