Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index

In the end the «getFlatParagraphIterator()» turned to be unrelated to
what I want to. I found an answer, and since α) nobody seems to know
out there for how to do it, and β) it is impossible to guess how to do
it without someone's example, so I'll leave the code here.

def removeNumberingSomeHeading1s(text):
    """Removes numbering from the first Heading1 (intro), then skips
three heading1s (chapters), and
removes from the rest Heading1s and Heading2s"""
    enumeration = text.createEnumeration()
    heading1s = 0
    while enumeration.hasMoreElements():
        par = enumeration.nextElement()
        if ( par.supportsService("") and
            par.ParaStyleName != None):
            if par.ParaStyleName == HEADING1:
                heading1s = heading1s + 1
            if ((heading1s > 4 or heading1s == 1) and
                par.ParaStyleName == HEADING1 or
                par.ParaStyleName == HEADING2):
                    par.setPropertyValue("NumberingStyleName", "NONE")

It takes Document.Text property as arg. The magic «paragraph iterator»
function in the end turned to be the «Text.createEnumeration()». I
guess it enumerates not only paragraphs, so one need to check that it
actually is — in above the code I'm doing this with the «if (

2015-08-12 23:09 GMT+03:00 Hi-Angel <>:
I found there's a function «getFlatParagraphIterator()», which result
in turn have functions like «getFirstPara()». That function returns a
type «XFlatParagraph», and I couldn't find in methods and properties
anything related to styles. Do anybody know anything about it?

2015-08-10 3:18 GMT+03:00 Hi-Angel <>:
Okay, to point what is confuses me with MRI — I tried to copy
properties list when cursor is in the table of contents and somewhere
in text. The *diff* utility then shows no difference.

But supposing that there is indeed no difference, I still couldn't see
how that could easily give me an idea for how to iterate through
headings. I do understand that the only thing I need is just change
style of particular paragraphs, and here I'm stuck.

2015-08-10 3:07 GMT+03:00 Hi-Angel <>:
Thank you for suggestion. Unfortunately I didn't managed to understand
how to work with MRI. Could you show an example of MRI usage with this
particular case?

I don't know if that relevant, but I am not writing macros, I am using
the API from a separate script with LO being run as a server.

2015-08-09 23:34 GMT+03:00 Andreas Säger <>:
Am 09.08.2015 um 16:52 schrieb Hi-Angel:
In python I have an opened document, and I need to change styles of
some «Heading 1»'s. (actually I need to do the thing like here
, but in script)

I couldn't figure out, what is a function or property of an opened
with «loadComponentFromURL» document to iterate over these? I guess
that would be something like «getAllParagraphs», or
«getParagraphsByStyle»… Either way, I couldn't find anything relevant.

In the GUI you simply modify the paragraph style in order to change the
appearance of all the paragraphs where the stye applies.
Without MRI you should not even try to write any macros.

[Tutorial] Introduction into object inspection with MRI

It leads you to the StyleFamilies of your documents and the built-in
ParagraphStyles which are accessible by their English names. On the fly
it records macros in 4 langauges.

To unsubscribe e-mail to:
Posting guidelines + more:
List archive:
All messages sent to this list will be publicly archived and cannot be deleted

To unsubscribe e-mail to:
Posting guidelines + more:
List archive:
All messages sent to this list will be publicly archived and cannot be deleted


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.