Skip to content

XLSX: worksheet drawing text runs ignore theme font inheritance #461

Description

@developer0hye

Summary

Worksheet drawing text runs that omit an explicit typeface do not inherit the workbook theme font. Excel renders the three shape labels with the theme's minor Latin sans-serif font, while office2pdf renders them with the Typst serif default.

Found while re-auditing the regression fixture in #434 at 150 DPI against a native Microsoft Excel export.

Reproduction

Convert tests/fixtures/xlsx/theme_color_drawing.xlsx from PR #434 and compare it with a native Excel PDF.

The drawing runs intentionally contain only language and size:

<a:rPr lang="en-US" sz="1100"/>

The workbook theme declares:

<a:minorFont><a:latin typeface="Calibri"/></a:minorFont>

Expected

Drawing labels inherit the applicable DrawingML theme font (Calibri minor Latin in this fixture), or a metric-compatible sans-serif fallback when unavailable.

Actual

accent1, accent1 lighter 60, and accent6 shade 75 render in a serif face. This changes glyph shapes and metrics despite the labels, 11pt size, regular weight, black color, and center alignment otherwise being preserved.

Root-cause evidence

parse_drawing_text_boxes currently reads sz, b, and i from a:rPr, but it neither parses explicit DrawingML typefaces nor resolves omitted typefaces through the workbook theme's font scheme. The resulting TextStyle.font_family is unset.

Visual checklist

Related: #240, #329, #430, #434

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions