pub struct Shapes<'a> { /* private fields */ }Expand description
不可变形状视图。
通过 slide.shapes() 获取,提供 len / is_empty / iter / get 等只读 API。
Implementations§
Source§impl<'a> Shapes<'a>
impl<'a> Shapes<'a>
Sourcepub fn iter(&self) -> impl Iterator<Item = ShapeKind> + 'a
pub fn iter(&self) -> impl Iterator<Item = ShapeKind> + 'a
遍历所有形状(克隆为 ShapeKind 枚举)。
返回的 ShapeKind 是高阶句柄,与原 Slide 拥有独立生命周期;
适合“先收集再逐个处理“的链式风格。
Sourcepub fn title(&self) -> Option<ShapeKind>
pub fn title(&self) -> Option<ShapeKind>
取标题占位符(若有)。
对标 python-pptx Slide.shapes.title。
§判定策略
按以下顺序查找第一个命中的形状(顺序与 python-pptx 略有差异,但行为更直观):
ph_type == "title"或ph_type == "ctrTitle"(居中标题);ph_idx == 0的占位符(OOXML 默认 idx=0 即为标题位);name含 “title”(不区分大小写)的占位符(兼容手工制作的 slide)。
返回 None 表示该 slide 没有标题占位符。
Sourcepub fn placeholders(&self) -> Vec<ShapeKind>
pub fn placeholders(&self) -> Vec<ShapeKind>
取所有占位符形状(按 ph_idx 升序排列;同 idx 多个按原顺序)。
对标 python-pptx Slide.placeholders / Slide.shapes.placeholders。
Sourcepub fn placeholder(&self, idx: u32) -> Option<ShapeKind>
pub fn placeholder(&self, idx: u32) -> Option<ShapeKind>
按 ph_idx 查占位符。
对标 python-pptx slide.placeholders[idx] 的 __getitem__ 语义。
返回第一个 ph_idx == idx 的占位符;没有则返回 None。
Sourcepub fn placeholders_inherited(&self, layout: &SlideLayoutRef) -> Vec<ShapeKind>
pub fn placeholders_inherited(&self, layout: &SlideLayoutRef) -> Vec<ShapeKind>
取所有占位符,并从给定版式继承位置/尺寸/填充/边框。
对标 python-pptx slide.placeholders 的继承语义:当 slide 占位符
未显式设置 xfrm / fill / line 时,从 layout 中同 ph_idx 的占位符继承。
§参数
layout:所属 Presentation 中的版式引用(通过Presentation::layout_for_slide获取)。
§返回
返回的 ShapeKind::Placeholder 携带继承后的属性快照(clone),
修改返回值不会回写到 slide。如需修改 slide 上的占位符,请用
ShapesMut::placeholder_mut。
§继承规则
- 若 slide 占位符
xfrm.is_empty(),从 layout 占位符继承 xfrm; - 若 slide 占位符
fill == Fill::Inherit,从 layout 占位符继承 fill; - 若 slide 占位符
line == None,从 layout 占位符继承 line; ph_type/ph_idx保持 slide 自身值不变。
Sourcepub fn placeholder_inherited(
&self,
idx: u32,
layout: &SlideLayoutRef,
) -> Option<ShapeKind>
pub fn placeholder_inherited( &self, idx: u32, layout: &SlideLayoutRef, ) -> Option<ShapeKind>
按 ph_idx 查占位符,并从给定版式继承位置/尺寸/填充/边框。
与 Shapes::placeholders_inherited 的区别:仅返回指定 idx 的占位符。