Re: How to insert the text/bookmark to position where I found another text

Fernand Vanrie <[email protected]> Mon, 27 Dec 2010 12:45:22 +0100
Newsgroups gmane.comp.openoffice.devel.api
Message-ID <[email protected]>
   gintare,

Alot off questions, i think you must trie to understand the use off a 
viewcursor and textcusors to place content in a document. Every where on 
the net you can find code to work with viewcursor etc..

Hope it helps

Fernand
> *
>
> Q – uno.RuntimeException
> *
> 1) Phylosophuc question:
> Is it possible to define relative one object position to another object and
> position in whole document context. I mean do words, commas, paragraphs,
> booksmarks has some ID which shows their position in whole document? If such
> ID exists, how to get it?
>
> 2)  Real question:
> ?? How to insert the text/bookmark to position where I found another text ??
> *i need **XTextContent*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextContent.html>
> type
> variable related to the bookmark
>
> I am searching for a "search string" in  text.odt  document and need
> to create and insert bookmark after it.
> later make table of contents of such bookmarks with references to positions
> where i found the text.
>
> *found=doc1.findAll(search); print '\nfound=\n', found*
> *foundLen=found.getCount(); print '\n foundLen=found.getCount()=\n',
> foundLen*
> *for i in range(foundLen):*
> *    mfoundItem=found.getByIndex(i); print
> '\n\nmfoundItem=found.getByIndex(',i,')=\n',mfoundItem*
> *    mbookmark=doc1.createInstance("com.sun.star.text.Bookmark")*
> *    #mbookmarkAnchor=mbookmark.getAnchor() - gives error*
> *   # i need **XTextContent*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextContent.html>
> type
> variable related to the bookmark
> *    text1.insertTextContent(mfoundItem,
> mbookmark_**XTextContent*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextContent.html>
>   *, 'false')*
>
>
> Code with comments:
>
> found=doc1.findAll(search); print '\nfound=\n', found
>
> #.....pyuno object (com.sun.star.container.XIndexAccess)....
>
> foundLen=found.getCount(); print '\n foundLen=found.getCount()=\n', foundLen
>
> for i in range(foundLen):
>
> mfoundItem=found.getByIndex(i); print
> '\n\nmfoundItem=found.getByIndex(',i,')=\n',mfoundItem
>
> #....... pyuno object (com.sun.star.text.XTextRange).......
>
>
> mbookmark=doc1.createInstance("com.sun.star.text.Bookmark")
>
> #...........pyuno object (com.sun.star.uno.XInterface)..........
>
> text1.insertTextContent(mfoundItem, mbookmark, 'false')
>
> # according API void *insertTextContent *( [in]
> *XTextRange*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextRange.html>xRange,
> [in]
> *XTextContent*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextContent.html>xContent,
> [in] boolean bAbsorb )
>
> # according print output mfoundItem is pyuno object .XtextRange
> # the mistake is in bookmark which is not object
> *XtextContent*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextContent.html>,
> as required by method *insertTextContent. *Print shows that bookmark is .object
> Xinterface.
>
> # it is impossible to get
> *XtextContent*<https://mail.google.com/mail/openoffice.org/basis3.2/sdk/docs/common/ref/com/sun/star/text/XTextContent.html>for
> the bookmark since getAnchor() method rise error "uno.RuntimeException" WHY?
> regards,
> gintare statkute
>