pub struct FormatScheme {
pub name: String,
pub raw_xml: String,
pub fill_styles: Vec<String>,
pub line_styles: Vec<String>,
pub effect_styles: Vec<String>,
pub bg_fill_styles: Vec<String>,
}Expand description
格式方案(对应 <a:fmtScheme>)。
FormatScheme 包含 fillStyleLst / lnStyleLst / effectStyleLst / bgFillStyleLst, 每个都含有复杂的嵌套元素(gradFill / ln / effectLst / scene3d / sp3d 等)。
§结构化策略
采用适度结构化:保留 raw_xml 用于 round-trip,同时把 4 个 style 列表
拆分为 fill_styles / line_styles / effect_styles / bg_fill_styles,
每个元素是对应子元素的原始 XML 字符串(如 <a:gradFill>...</a:gradFill>)。
这样用户可以查询/替换某个 style,而无需完整解析每个 fill/ln/effect 的内部结构。
Fields§
§name: String格式方案名(<a:fmtScheme name="Office">)。
raw_xml: String原始 XML 内容(<a:fmtScheme> 内部的子元素 XML)。
为空时 Theme::to_xml 会使用默认的 Office 格式方案。
fill_styles: Vec<String>填充样式列表(<a:fillStyleLst> 内的每个 fill 元素 XML)。
通常 3 个:solidFill / gradFill / gradFill。
line_styles: Vec<String>线条样式列表(<a:lnStyleLst> 内的每个 <a:ln> 元素 XML)。
通常 3 个。
effect_styles: Vec<String>效果样式列表(<a:effectStyleLst> 内的每个 <a:effectStyle> 元素 XML)。
通常 3 个。
bg_fill_styles: Vec<String>背景填充样式列表(<a:bgFillStyleLst> 内的每个 fill 元素 XML)。
通常 2 个。
Implementations§
Source§impl FormatScheme
impl FormatScheme
Sourcepub fn write_xml(&self, w: &mut XmlWriter)
pub fn write_xml(&self, w: &mut XmlWriter)
写出 <a:fmtScheme> 元素到 writer。
优先级:结构化字段(fill_styles 等)> raw_xml > 默认 Office 格式方案。 若结构化字段非空,按 OOXML 顺序输出 4 个 style 列表;否则回退到 raw_xml。
Sourcepub fn parse_from_raw_xml(&mut self)
pub fn parse_from_raw_xml(&mut self)
Sourcepub fn fill_style_count(&self) -> usize
pub fn fill_style_count(&self) -> usize
填充样式数量。
Sourcepub fn line_style_count(&self) -> usize
pub fn line_style_count(&self) -> usize
线条样式数量。
Sourcepub fn effect_style_count(&self) -> usize
pub fn effect_style_count(&self) -> usize
效果样式数量。
Sourcepub fn bg_fill_style_count(&self) -> usize
pub fn bg_fill_style_count(&self) -> usize
背景填充样式数量。
Trait Implementations§
Source§impl Clone for FormatScheme
impl Clone for FormatScheme
Source§fn clone(&self) -> FormatScheme
fn clone(&self) -> FormatScheme
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more