Chart2 Direct Title/Subtitle Borders

Overview

The style_border_line() method has the same options as the Chart Data Series Borders dialog as seen in Fig. 813.

Setup

from __future__ import annotations
from pathlib import Path
import uno
from ooo.dyn.awt.gradient_style import GradientStyle
from ooodev.calc import CalcDoc, ZoomKind
from ooodev.loader.lo import Lo
from ooodev.utils.color import StandardColor
from ooodev.utils.data_type.color_range import ColorRange

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectPipe()):
        fnm = Path.cwd() / "tmp" / "piechart.ods"
        doc = CalcDoc.open_doc(fnm=fnm, visible=True)
        Lo.delay(500)
        doc.zoom(ZoomKind.ZOOM_100_PERCENT)

        sheet = doc.sheets[0]
        sheet["A1"].goto()
        chart_table = sheet.charts[0]
        chart_doc = chart_table.chart_doc
        _ = chart_doc.style_border_line(
            color=StandardColor.PURPLE_DARK1,
            width=0.7,
        )
        _ = chart_doc.style_area_gradient(
            step_count=64,
            style=GradientStyle.SQUARE,
            angle=45,
            grad_color=ColorRange(
                StandardColor.BLUE_DARK1,
                StandardColor.PURPLE_LIGHT2,
            ),
        )

        title = chart_doc.get_title()
        if title is None:
            raise ValueError("Title not found")

        title.style_border_line(
            color=StandardColor.MAGENTA_DARK1,
            width=0.75,
        )

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

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

Applying Line Properties

The style_border_line() method is called to set the title and subtitle border line properties.

Before formatting the chart is seen in Fig. 832.

Apply to Title

# ... other code

title = chart_doc.get_title()
if title is None:
    raise ValueError("Title not found")

title.style_border_line(
    color=StandardColor.MAGENTA_DARK1,
    width=0.75,
)

The results are seen in Fig. 631 and Fig. 632.

Chart with title border set

Fig. 631 Chart with title border set

Chart Data Series Borders Default Dialog

Fig. 632 Chart Data Series Borders Default Dialog

Apply to Subtitle

# ... other code
sub_title = chart_doc.first_diagram.get_title()
if sub_title is None:
    raise ValueError("Title not found")

sub_title.style_border_line(
    color=StandardColor.MAGENTA_DARK1,
    width=0.75,
)

The results are seen in Fig. 633.

Chart with subtitle border set

Fig. 633 Chart with subtitle border set