pub struct FillFormat<'a> { /* private fields */ }Expand description
填充高阶视图(pptx.dml.fill.FillFormat)。
§与 python-pptx 的对应
pptx.dml.fill.FillFormat←→FillFormat;shape.fill.solid()+shape.fill.fore_color.rgb = ...←→fill_format.solid().set_rgb(...)。
§设计要点
- 借用 + 透明代理:构造时传入
&mut Fill;所有写都走底层; - 零分配:颜色写入走
ColorFormat的借用; - 类型安全:通过
super::simpletypes::MsoFillType表达“当前填充类型“。
Implementations§
Source§impl<'a> FillFormat<'a>
impl<'a> FillFormat<'a>
Sourcepub fn new(fill: &'a mut Fill) -> FillFormat<'a>
pub fn new(fill: &'a mut Fill) -> FillFormat<'a>
构造一个 fill 视图。
Sourcepub fn fill_type(&self) -> MsoFillType
pub fn fill_type(&self) -> MsoFillType
当前填充类型(python-pptx fill.type)。
Sourcepub fn solid(&mut self) -> ColorFormat<'_>
pub fn solid(&mut self) -> ColorFormat<'_>
切到实色模式并返回 ColorFormat 代理。
对应 python-pptx 中 fill.solid() 后再 fill.fore_color.rgb = ...。
调用本方法会把 Fill 切到 Solid(Color::None),后续 set_rgb /
set_theme 等会原地更新 Color。
Sourcepub fn set_none(&mut self)
pub fn set_none(&mut self)
切到无填充。
对应 python-pptx 中 fill.background()。但通常我们用 FillFormat::clear 更直白。
Sourcepub fn set_picture(&mut self, rid: impl Into<String>, mode: BlipFillMode)
pub fn set_picture(&mut self, rid: impl Into<String>, mode: BlipFillMode)
Sourcepub fn set_solid_rgb(&mut self, c: impl Into<RGBColor>)
pub fn set_solid_rgb(&mut self, c: impl Into<RGBColor>)
便捷:直接设成 sRGB 实色。
Sourcepub fn set_solid_theme(&mut self, t: MsoThemeColorIndex)
pub fn set_solid_theme(&mut self, t: MsoThemeColorIndex)
便捷:直接设成主题色实色。
Sourcepub fn gradient(&mut self) -> &mut GradientFill
pub fn gradient(&mut self) -> &mut GradientFill
切到渐变模式并返回 &mut GradientFill 供进一步配置。
对应 python-pptx 中 fill.gradient()。调用本方法会把 Fill 切到
Gradient(GradientFill { stops: vec![], gradient_type: Linear(0), .. }),
调用方随后通过返回的引用添加光轨、设置角度等。
§示例
ⓘ
use ooxml_core::oxml::sppr::{Fill, GradientStop, GradientType};
use ooxml_core::units::RGBColor;
use ooxml_core::oxml::color::Color;
let mut fill = Fill::Inherit;
let mut fmt = FillFormat::new(&mut fill);
let g = fmt.gradient();
g.stops.push(GradientStop { pos: 0, color: Color::RGB(RGBColor::new(0xFF, 0x00, 0x00)) });
g.stops.push(GradientStop { pos: 100000, color: Color::RGB(RGBColor::new(0x00, 0x00, 0xFF)) });
g.gradient_type = GradientType::Linear(2_700_000); // 向下Sourcepub fn set_gradient_linear(&mut self, stops: Vec<GradientStop>, angle: i32)
pub fn set_gradient_linear(&mut self, stops: Vec<GradientStop>, angle: i32)
Sourcepub fn set_gradient_path(
&mut self,
stops: Vec<GradientStop>,
path: GradientPath,
)
pub fn set_gradient_path( &mut self, stops: Vec<GradientStop>, path: GradientPath, )
Sourcepub fn pattern(&mut self) -> &mut PatternFill
pub fn pattern(&mut self) -> &mut PatternFill
切到图案模式并返回 &mut PatternFill 供进一步配置。
调用本方法会把 Fill 切到 Pattern(PatternFill::default()),
调用方随后通过返回的引用设置 prst / fg_color / bg_color。
Trait Implementations§
Source§impl<'a> Debug for FillFormat<'a>
impl<'a> Debug for FillFormat<'a>
Source§impl<'a> From<&'a mut Fill> for FillFormat<'a>
impl<'a> From<&'a mut Fill> for FillFormat<'a>
Source§fn from(f: &'a mut Fill) -> FillFormat<'a>
fn from(f: &'a mut Fill) -> FillFormat<'a>
Converts to this type from the input type.
Auto Trait Implementations§
impl<'a> !UnwindSafe for FillFormat<'a>
impl<'a> Freeze for FillFormat<'a>
impl<'a> RefUnwindSafe for FillFormat<'a>
impl<'a> Send for FillFormat<'a>
impl<'a> Sync for FillFormat<'a>
impl<'a> Unpin for FillFormat<'a>
impl<'a> UnsafeUnpin for FillFormat<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more