Chart2 Direct Legend Font Effects (Static)

Overview

The ooodev.format.chart2.direct.legend.font.FontEffects class gives you the similar options as Fig. 700 Font Effects Dialog, but without the dialog.

Calls to the Chart2.style_legend() and method is used to style legend.

Setup

General setup for this example.

import uno
from ooodev.format.chart2.direct.legend.font import (
    FontEffects as LegendFontEffects,
    FontLine,
    FontUnderlineEnum,
)
from ooodev.format.chart2.direct.general.borders import LineProperties as ChartLineProperties
from ooodev.format.chart2.direct.general.area import Gradient as ChartGradient
from ooodev.format.chart2.direct.general.area import GradientStyle, ColorRange
from ooodev.office.calc import Calc
from ooodev.office.chart2 import Chart2
from ooodev.utils.color import StandardColor
from ooodev.gui import GUI
from ooodev.utils.kind.zoom_kind import ZoomKind
from ooodev.loader.lo import Lo

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectPipe()):
        doc = Calc.open_doc("pie_chart.ods")
        GUI.set_visible(True, doc)
        Lo.delay(500)
        Calc.zoom(doc, ZoomKind.ZOOM_100_PERCENT)

        sheet = Calc.get_active_sheet()

        Calc.goto_cell(cell_name="A1", doc=doc)
        chart_doc = Chart2.get_chart_doc(sheet=sheet, chart_name="pie_chart")

        chart_bdr_line = ChartLineProperties(color=StandardColor.BRICK, width=1)
        chart_grad = ChartGradient(
            chart_doc=chart_doc,
            step_count=64,
            style=GradientStyle.SQUARE,
            angle=45,
            grad_color=ColorRange(StandardColor.GREEN_DARK4, StandardColor.TEAL_LIGHT2),
        )
        Chart2.style_background(chart_doc=chart_doc, styles=[chart_grad, chart_bdr_line])

        legend_font_effects_style = LegendFontEffects(
            color=StandardColor.PURPLE,
            underline=FontLine(line=FontUnderlineEnum.BOLDWAVE, color=StandardColor.GREEN_DARK2),
        )
        Chart2.style_legend(chart_doc=chart_doc, styles=[legend_font_effects_style])

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

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

Apply the font effects to the Legend

Before formatting the chart is visible in Fig. 833.

from ooodev.format.chart2.direct.legend.font import (
    FontEffects as LegendFontEffects,
    FontLine,
    FontUnderlineEnum,
)
# ... other code

legend_font_effects_style = LegendFontEffects(
    color=StandardColor.PURPLE,
    underline=FontLine(line=FontUnderlineEnum.BOLDWAVE, color=StandardColor.GREEN_DARK2),
)
Chart2.style_legend(chart_doc=chart_doc, styles=[legend_font_effects_style])

Running the above code will produce the following output in Fig. 699 and Fig. 700.

Chart with Legend font effects applied

Fig. 699 Chart with Legend font effects applied

Chart Legend Font Effects Dialog

Fig. 700 Chart Legend Font Effects Dialog