Skip to main content

Module smartartshape

Module smartartshape 

Source
Expand description

SmartArtShape:高阶 SmartArt 形状(TODO-037 创建 API)。

SmartArt(diagram)在 OOXML 中通过 <p:graphicFrame> + <a:graphicData uri=".../diagram"> + <dgm:relIds r:dm=".." r:lo=".." r:qs=".." r:cs=".."/> 引用 4 个独立的 /ppt/diagrams/{data,layout,quickStyles,colors}N.xml part。 本高阶 API 把 graphicFrame 包装为 SmartArtShape,提供 4 个关系 id 的 便捷访问与设置,并让 Shape trait 直接可用。

§与 python-pptx 的对应

  • python-pptx 当前未提供 SmartArt 创建 API(截至 0.6.23);
  • 本类型参考 ChartShape / OleObjectShape 的设计模式自研。

§写出语义

  • SmartArtShape 序列化时只写出 <p:graphicFrame> + <a:graphicData> 内的 <dgm:relIds r:dm=".." r:lo=".." r:qs=".." r:cs=".."/> 引用元素;
  • 真正的 4 个 diagram part(data / layout / quickStyles / colors)由 crate::presentation::Presentation::saveto_opc_package 中遍历每张 slide 的 diagram_entries 写出独立 part;
  • slide 的 _rels/slideN.xml.rels 中会添加 4 个关系(DiagramData / DiagramLayout / DiagramQuickStyle / DiagramColors)指向对应 part。

§创建路径

Structs§

SmartArtShape
高阶 SmartArt 形状(承载 <p:graphicFrame> + <dgm:relIds> 引用)。