Draw Modify Line Spacing

The ooodev.format.draw.modify.indent_space.LineSpacing, class is used to modify the values seen in Fig. 898 of a style.

Draw dialog Line Spacing default

Fig. 898 Draw dialog Line Spacing default

Setting the Line Spacing

from __future__ import annotations
import uno
from ooodev.draw import Draw, DrawDoc, ZoomKind
from ooodev.format.draw.modify import FamilyGraphics, DrawStyleFamilyKind
from ooodev.format.draw.modify.indent_space import LineSpacing, ModeKind
from ooodev.loader.lo import Lo

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectSocket()):
        doc = DrawDoc(Draw.create_draw_doc())
        doc.set_visible()
        Lo.delay(700)
        doc.zoom(ZoomKind.ZOOM_75_PERCENT)

        slide = doc.get_slide()

        width = 100
        height = 50
        x = 10
        y = 10

        rect = slide.draw_rectangle(x=x, y=y, width=width, height=height)
        rect.set_string("Hello World!")

        style = LineSpacing(
            mode=ModeKind.PROPORTIONAL,
            value=87,
            style_name=FamilyGraphics.DEFAULT_DRAWING_STYLE,
            style_family=DrawStyleFamilyKind.GRAPHICS,
        )
        doc.apply_styles(style)

        Lo.delay(1_000)
        doc.close_doc()
    return 0

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

Running the above code will produce the following results in the Draw dialog.

Draw dialog Spacing style changed

Fig. 899 Draw dialog Spacing style changed

Getting line spacing from a style

# ... other code

f_style = LineSpacing.from_style(
    doc=doc.component,
    style_name=style.prop_style_name,
    style_family=style.prop_style_family_name
)
assert f_style is not None
assert f_style.prop_style_name == str(FamilyGraphics.DEFAULT_DRAWING_STYLE)