Write Direct Paragraph Transparency

Overview

Writer has an Transparency dialog section.

The ooodev.format.writer.direct.para.transparency.Transparency class is used to set the paragraph background transparency.

Writer Paragraph Transparency dialog

Fig. 1001 Writer Paragraph Transparency dialog

Setup

General function used to run these examples:

from ooodev.format.writer.direct.para.area import Color
from ooodev.format.writer.direct.para.transparency import Transparency
from ooodev.office.write import Write
from ooodev.gui import GUI
from ooodev.loader.lo import Lo
from ooodev.utils.color import StandardColor


def main() -> int:
    p_txt = (
        "To Sherlock Holmes she is always THE woman. I have seldom heard"
        " him mention her under any other name. In his eyes she eclipses"
        " and predominates the whole of her sex. It was not that he felt"
        " any emotion akin to love for Irene Adler. All emotions, and that"
        " one particularly, were abhorrent to his cold, precise but"
        " admirably balanced mind. He was, I take it, the most perfect"
        " reasoning and observing machine that the world has seen, but as a"
        " lover he would have placed himself in a false position. He never"
        " spoke of the softer passions, save with a gibe and a sneer. They"
        " were admirable things for the observer--excellent for drawing the"
        " veil from men's motives and actions. But for the trained reasoner"
        " to admit such intrusions into his own delicate and finely"
        " adjusted temperament was to introduce a distracting factor which"
        " might throw a doubt upon all his mental results. Grit in a"
        " sensitive instrument, or a crack in one of his own high-power"
        " lenses, would not be more disturbing than a strong emotion in a"
        " nature such as his. And yet there was but one woman to him, and"
        " that woman was the late Irene Adler, of dubious and questionable memory."
    )

    with Lo.Loader(Lo.ConnectPipe()):
        doc = Write.create_doc()
        GUI.set_visible(doc=doc)
        Lo.delay(300)
        GUI.zoom(GUI.ZoomEnum.ZOOM_100_PERCENT)
        cursor = Write.get_cursor(doc)

        color_style = Color(StandardColor.LIME)
        t_style = Transparency(52)

        Write.append_para(cursor=cursor, text=p_txt, styles=[color_style, t_style])

        para_cursor = Write.get_paragraph_cursor(cursor)
        para_cursor.gotoPreviousParagraph(False)
        para_cursor.gotoEndOfParagraph(True)

        text_para = cast("TextRangeContentProperties", para_cursor)

        para_t = Transparency.from_obj(text_para.TextParagraph)
        assert para_t is not None

        para_cursor.gotoEnd(False)
        Lo.delay(1_000)
        Lo.close_doc(doc)
    return 0


if __name__ == "__main__":
    SystemExit(main())

Examples

Apply Transparency to Paragraph

In this example we will apply a transparency to a paragraph background color. The transparency needs to be applied after the paragraph color as the transparency is applied to the color. This means the order [color_style, t_style] is important. The transparency is set to 52% in this example.

# ... other code

cursor = Write.get_cursor(doc)

color_style = Color(StandardColor.LIME)
t_style = Transparency(52)

Write.append_para(cursor=cursor, text=p_txt, styles=[color_style, t_style])
Writer Paragraph Color and Transparency

Fig. 1002 Writer Paragraph Color and Transparency

Get Transparency from Paragraph

# ... other code
cursor = Write.get_cursor(doc)
# ... other code

para_cursor = Write.get_paragraph_cursor(cursor)
para_cursor.gotoPreviousParagraph(False)
para_cursor.gotoEndOfParagraph(True)

text_para = cast("TextRangeContentProperties", para_cursor)

para_t = Transparency.from_obj(text_para.TextParagraph)
assert para_t is not None

para_cursor.gotoEnd(False)