Hi Morten,
Morten Omholt Alver schrieb:
2009/2/26 Peter Eberlein <[email protected]>:

I got a similar problem some time ago and solved it as follows (in Java):
The XTextViewCursor jumps to all relevant XTextRanges. The found
positions(X,Y) and the page number can you store in a new class, which
implements the Comparable Interface. So, after adding all this new objects
to an ArrayList you can sort them with Collections.sort(arrayList).

Peter,

thanks for this advice - it works great! I didn't know there was a way
to get absolute positions from a document, but I suspected thee had to
be.

Only one problem remains - I think citations in footnotes should be
sorted based on the location of the footnote marker in the text,
rather than the footnote itself (if citation [2] is in a footnote
linked from the top of a page, citations further down on the page
should be numbered [3] and further, but with the current technique
they will be put before it because the footnote body is at the bottom
of the page). To solve this, I suppose I need to find which citations
are in footnotes, and then find the footnote reference in the text,
and finally take the location of that reference. I can probably figure
out how to do this, but I'd be happy to get any pointers!

You can can query for the XText of the XTextRange of your citation. If xText.supportsService("com.sun.star.text.FootNote") then you're in a footer. The field has a property "SourceName" which gives you the ReferenceMark name it is linked to. If the property "ReferenceFieldSource" is of type com.sun.star.text.ReferenceFieldSource.REFERENCE_MARK, then you can find the location with (simplified) document.getReferenceMarks().getByName(sourceName).

Regards

Peter


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to