- SVG布局规划、视觉风格、技术合规技能 - ppt-master技能下载脚本(从GitHub获取) - .gitignore配置 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 lines
2.4 KiB
Markdown
31 lines
2.4 KiB
Markdown
---
|
||
name: 3-ppt-svg-technical-compliance
|
||
description: 负责 SVG 图片的血液:PPT底层兼容性与SVG语法约束。必须遵守以确保在 PowerPoint 中 100% 可编辑且不走样。
|
||
---
|
||
|
||
# PPT 兼容与工程合规 (Technical Compliance)
|
||
|
||
**核心职责**:确保生成的 SVG 代码能够被 `convert_svgs_to_pptx` 完美转换。PPTX 的解析引擎很脆弱,必须严格遵守以下降级与内联约束。
|
||
|
||
## 1. 样式处理协议:去 CSS 化 (Zero-CSS Policy)
|
||
|
||
* **全内联属性**:**严禁使用 `<style>` 标签或外部 CSS 类。**所有的样式(`fill`, `stroke`, `font-family`, `font-weight`, `font-size`)必须作为 XML 的内联属性写在元素标签上。
|
||
* **显式加粗**:PPT 解析引擎经常忽略 CSS 的 `font-weight: bold`,必须使用 `<text font-weight="bold">`。
|
||
|
||
## 2. 文本引擎协议 (Text Engine)
|
||
|
||
* **字体后备栈**:`font-family` 必须首选 Windows 预装字体。中文优先 `"Microsoft YaHei", sans-serif`;英文/数字优先 `"Arial", "Inter", sans-serif`。
|
||
* **绝对行坐标**:**禁用相对排版(如 `<tspan dy="1.2em">`)**。如果文字有多行,尽量输出多行独立的 `<text x="..." y="...">` 标签,强制计算它们的绝对 y 坐标。这样在 PPT 里取消组合时,就是独立完美的文本框,不会叠在一起。
|
||
* **显式带单位尺寸**:所有字号最好带有 `px` 单位,如 `font-size="24px"`,部分 PPT 解析引擎对于无单位尺寸会处理出错。
|
||
|
||
## 3. 图元安全与降级 (Safe Elements & Downgrades)
|
||
|
||
* **正交倒角法则**:连线折角严禁出现 90 度直角的锯齿。必须在折线 `<path d="...">` 上加上 `stroke-linejoin="round"`,或手动使用圆弧贝塞尔曲线。
|
||
* **降级物理阴影**:**严禁使用复杂的 `<filter id="shadow">`(PPT 会丢失效果)。**若要阴影,使用一个比原图向右下偏移 4px、填充色为黑色、`opacity="0.05"` 的 `<rect>` 垫在原图下面。
|
||
* **无引用图层扁平化**:禁用 `<use>` 和 `<foreignObject>`。所有的图标直接用 `<path>` 画出,或使用基础几何图形组合。
|
||
|
||
## 4. 层级解耦 (Group Structure)
|
||
|
||
使用具有语意 `id` 的 `<g>` 标签对“业务模块(如底框+文字+图标)”进行打包。
|
||
如果有整体移动需求,使用 `<g transform="translate(x, y)">`,这能在用户进入 PPT 取消组合时,保持组内元件的相对位置不乱。
|