Chart2 Direct Title/Subtitle Font Only

Overview

The style_font() method is used to set the font of the Title and Subtitle of a Chart, similar options as Fig. 821 Font Dialog, but without the dialog.

Setup

General setup for this example.

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_font(
            name="Lucida Calligraphy",
            size=14,
            font_style="italic",
        )
        Lo.delay(1_000)
        doc.close()
    return 0

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

Apply the Font

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_font(
    name="Lucida Calligraphy",
    size=14,
    font_style="italic",
)

Running the above code will produce the following output shown in Fig. 639 and Fig. 640.

Chart with Title Font set

Fig. 639 Chart with Title Font set

Chart Data Labels Dialog Font

Fig. 640 Chart Data Labels Dialog Font

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_font(
    name="Lucida Calligraphy",
    size=14,
    font_style="italic",
)

Running the above code will produce the following output shown in Fig. 641.

Chart with Subtitle Font set

Fig. 641 Chart with Subtitle Font set