# Element Rendering (Delta) ## Purpose 本增量规范更新表格元素的字体渲染方式,新增 font 和 header_font 字段支持完整字体配置,移除旧语法 style.font_size 和 style.header_color。 ## MODIFIED Requirements ### Requirement: 系统必须支持表格元素渲染 系统 SHALL 将 YAML 中定义的表格元素渲染为 PPTX 表格对象。表格元素支持 font 和 header_font 字段用于字体配置,style 字段仅用于非字体样式(如背景色)。 #### Scenario: 渲染基本表格 - **WHEN** 元素定义为 `{type: table, position: [1, 2], data: [["A", "B"], ["C", "D"]], col_widths: [2, 2]}` - **THEN** 系统在 (1, 2) 位置创建 2×2 表格,列宽各为 2 英寸 #### Scenario: 表格定义整体字体 - **WHEN** 表格定义 `font: {family: "Arial", size: 14, color: "#333333"}` - **THEN** 系统将数据单元格和表头都应用该字体样式 #### Scenario: 表格定义表头字体 - **WHEN** 表格定义 `header_font: {bold: true, color: "#ffffff"}` - **THEN** 系统将表头应用该字体样式,数据单元格继承 font 或使用默认字体 #### Scenario: 表头字体继承表格字体 - **WHEN** 表格定义 `font: {size: 14}` 且 `header_font: {parent: "@font", bold: true}` - **THEN** 表头继承 size: 14,覆盖 bold: true #### Scenario: 表格仅定义 header_font - **WHEN** 表格仅定义 `header_font: {bold: true}` - **THEN** 表头应用 bold: true,数据单元格使用 fonts_default 或系统默认字体 #### Scenario: 表格定义背景样式 - **WHEN** 表格定义 `style: {header_bg: "#4a90e2"}` - **THEN** 系统将表头背景色设置为 #4a90e2 #### Scenario: 表格同时定义字体和背景样式 - **WHEN** 表格定义 `font: {size: 14}` 和 `style: {header_bg: "#4a90e2"}` - **THEN** 系统同时应用字体样式和背景色 #### Scenario: 表格数据为空时报错 - **WHEN** 表格的 `data` 字段为空数组 - **THEN** 系统抛出错误,提示表格数据不能为空 #### Scenario: 表格列宽不匹配时报错 - **WHEN** `col_widths` 数组长度与表格列数不一致 - **THEN** 系统抛出错误,要求列宽数量与列数匹配 ## REMOVED Requirements ### Requirement: 系统必须支持表格样式中的字体属性 **Reason**: 被 font 和 header_font 字段取代,提供更完整和统一的字体配置方式 **Migration**: 使用新的 font 和 header_font 字段替代 style.font_size 和 style.header_color - **FROM:** `style: {font_size: 14, header_color: "#ffffff"}` - **TO:** `font: {size: 14}, header_font: {color: "#ffffff"}`