# Element Rendering - Delta Spec ## MODIFIED Requirements ### Requirement: 系统必须支持文本元素渲染 系统 SHALL 将 YAML 中定义的文本元素渲染为 PPTX 文本框,并默认启用文字自动换行。当文本内容包含换行符(YAML 多行字符串语法)时,系统必须将所有字体样式(大小、粗体、斜体、颜色、对齐)应用到文本框中的每个段落。 #### Scenario: 渲染基本文本元素 - **WHEN** 元素定义为 `{type: text, content: "Hello", box: [1, 2, 8, 3]}` - **THEN** 系统在幻灯片的 (1, 2) 位置创建 8x3 英寸的文本框,内容为 "Hello" #### Scenario: 应用文本字体样式 - **WHEN** 文本元素定义了 `font: {size: 32, bold: true, color: "#333333"}` - **THEN** 系统将文本设置为 32pt、粗体、颜色为 #333333 #### Scenario: 多行文本样式应用到所有段落 - **WHEN** 文本内容包含换行符(如 YAML 多行字符串 `content: |\n 第一行\n 第二行\n 第三行`)且定义了 `font: {size: 12}` - **THEN** 系统将 12pt 字号应用到所有段落(第一行、第二行、第三行) - **AND** 每个段落的字体大小都应一致 #### Scenario: 多行文本其他样式应用到所有段落 - **WHEN** 文本内容包含换行符且定义了 `font: {size: 12, bold: true, italic: true, color: "#ff0000", align: center}` - **THEN** 系统将所有样式(大小、粗体、斜体、颜色、对齐)应用到所有段落 - **AND** 每个段落的样式都应一致 #### Scenario: 单行文本样式行为不变 - **WHEN** 文本内容不包含换行符且定义了 `font: {size: 12}` - **THEN** 系统将 12pt 字号应用到文本(行为与之前相同) #### Scenario: 应用文本对齐方式 - **WHEN** 文本元素定义了 `font: {align: center}` - **THEN** 系统将文本设置为居中对齐 #### Scenario: 支持多种对齐方式 - **WHEN** 文本对齐方式为 `left`、`center`、`right` 之一 - **THEN** 系统正确应用对应的对齐方式 #### Scenario: 文本框默认启用自动换行 - **WHEN** 系统渲染任何文本元素 - **THEN** 系统设置 `text_frame.word_wrap = True`,文字在文本框边界处自动换行