一、基础元素类型
PPTist 中所有的元素都继承自 PPTElement 基础类型,包含以下几种:
- 文本元素 (PPTTextElement)
- 图片元素 (PPTImageElement)
- 形状元素 (PPTShapeElement)
- 线条元素 (PPTLineElement)
- 图表元素 (PPTChartElement)
- 表格元素 (PPTTableElement)
- LaTeX元素 (PPTLatexElement)
- 视频元素 (PPTVideoElement)
- 音频元素 (PPTAudioElement)
二、元素通用属性 (PPTBaseElement)
| 属性 | 类型 | 说明 |
|---|
| id | string | 元素ID |
| left | number | 元素水平方向位置(距离画布左侧) |
| top | number | 元素垂直方向位置(距离画布顶部) |
| width | number | 元素宽度 |
| height | number | 元素高度 |
| rotate | number | 旋转角度 |
| lock? | boolean | 锁定元素 |
| groupId? | string | 组合ID |
| link? | PPTElementLink | 超链接 |
| name? | string | 元素名 |
超链接 (PPTElementLink)
| 属性 | 类型 | 说明 |
|---|
| type | ‘web’ | ‘slide’ | 链接类型(网页、幻灯片页面) |
| target | string | 目标地址(网页链接、幻灯片页面ID) |
三、通用样式定义
元素阴影 (PPTElementShadow)
| 属性 | 类型 | 说明 |
|---|
| h | number | 水平偏移量 |
| v | number | 垂直偏移量 |
| blur | number | 模糊程度 |
| color | string | 阴影颜色 |
元素边框 (PPTElementOutline)
| 属性 | 类型 | 说明 |
|---|
| style? | ‘dashed’ | ‘solid’ | 边框样式(实线或虚线) |
| width? | number | 边框宽度 |
| color? | string | 边框颜色 |
四、具体元素定义
1. 文本元素 (PPTTextElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘text’ | 元素类型 |
| content | string | 文本内容(HTML字符串) |
| defaultFontName | string | 默认字体 |
| defaultColor | string | 默认颜色 |
| outline? | PPTElementOutline | 边框 |
| fill? | string | 填充色 |
| lineHeight? | number | 行高(倍) |
| wordSpace? | number | 字间距 |
| opacity? | number | 不透明度 |
| shadow? | PPTElementShadow | 阴影 |
| paragraphSpace? | number | 段间距 |
| vertical? | boolean | 竖向文本 |
2. 图片元素 (PPTImageElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘image’ | 元素类型 |
| src | string | 图片地址 |
| fixedRatio | boolean | 固定图片宽高比例 |
| outline? | PPTElementOutline | 边框 |
| filters? | ImageElementFilters | 图片滤镜 |
| clip? | ImageElementClip | 裁剪信息 |
| flipH? | boolean | 水平翻转 |
| flipV? | boolean | 垂直翻转 |
| shadow? | PPTElementShadow | 阴影 |
| colorMask? | string | 颜色蒙版 |
3. 形状元素 (PPTShapeElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘shape’ | 元素类型 |
| viewBox | [number, number] | SVG的viewBox属性 |
| path | string | 形状路径 |
| fixedRatio | boolean | 固定形状宽高比例 |
| fill | string | 填充色 |
| gradient? | ShapeGradient | 渐变 |
| outline? | PPTElementOutline | 边框 |
| opacity? | number | 不透明度 |
| flipH? | boolean | 水平翻转 |
| flipV? | boolean | 垂直翻转 |
| shadow? | PPTElementShadow | 阴影 |
| special? | boolean | 特殊形状标记 |
| text? | ShapeText | 形状内文本 |
| pathFormula? | ShapePathFormulasKeys | 形状路径计算公式 |
| keypoints? | number[] | 关键点位置百分比 |
4. 线条元素 (PPTLineElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘line’ | 元素类型 |
| start | [number, number] | 起点位置 |
| end | [number, number] | 终点位置 |
| style | string | 线条样式 |
| color | string | 线条颜色 |
| points | [LinePoint, LinePoint] | 端点样式 |
| shadow? | PPTElementShadow | 阴影 |
| broken? | [number, number] | 折线控制点位置 |
| broken2? | [number, number] | 双折线控制点位置 |
| curve? | [number, number] | 二次曲线控制点位置 |
| cubic? | [[number, number], [number, number]] | 三次曲线控制点位置 |
5. 图表元素 (PPTChartElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘chart’ | 元素类型 |
| fill? | string | 填充色 |
| chartType | ChartType | 图表基础类型 |
| data | ChartData | 图表数据 |
| options? | ChartOptions | 图表配置项 |
| outline? | PPTElementOutline | 边框 |
| themeColor | string[] | 主题色 |
| gridColor? | string | 网格&坐标颜色 |
| legend? | ‘’ | ‘top’ | ‘bottom’ | 图例/位置 |
6. 表格元素 (PPTTableElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘table’ | 元素类型 |
| outline | PPTElementOutline | 边框 |
| theme? | TableTheme | 主题 |
| colWidths | number[] | 列宽数组 |
| cellMinHeight | number | 单元格最小高度 |
| data | TableCell[][] | 表格数据 |
7. LaTeX元素 (PPTLatexElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘latex’ | 元素类型 |
| latex | string | latex代码 |
| path | string | svg path |
| color | string | 颜色 |
| strokeWidth | number | 路径宽度 |
| viewBox | [number, number] | SVG的viewBox属性 |
| fixedRatio | boolean | 固定形状宽高比例 |
8. 视频元素 (PPTVideoElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘video’ | 元素类型 |
| src | string | 视频地址 |
| autoplay | boolean | 自动播放 |
| poster? | string | 预览封面 |
| ext? | string | 视频后缀 |
9. 音频元素 (PPTAudioElement)
| 属性 | 类型 | 说明 |
|---|
| type | ‘audio’ | 元素类型 |
| fixedRatio | boolean | 固定图标宽高比例 |
| color | string | 图标颜色 |
| loop | boolean | 循环播放 |
| autoplay | boolean | 自动播放 |
| src | string | 音频地址 |
| ext? | string | 音频后缀 |
五、动画定义
元素动画 (PPTAnimation)
| 属性 | 类型 | 说明 |
|---|
| id | string | 动画id |
| elId | string | 元素ID |
| effect | string | 动画效果 |
| type | AnimationType | 动画类型(入场、退场、强调) |
| duration | number | 动画持续时间 |
| trigger | AnimationTrigger | 动画触发方式 |
六、幻灯片页面定义
幻灯片页面 (Slide)
| 属性 | 类型 | 说明 |
|---|
| id | string | 页面ID |
| elements | PPTElement[] | 元素集合 |
| notes? | Note[] | 批注 |
| remark? | string | 备注 |
| background? | SlideBackground | 页面背景 |
| animations? | PPTAnimation[] | 元素动画集合 |
| turningMode? | TurningMode | 翻页方式 |
| sectionTag? | SectionTag | 章节标记 |
幻灯片主题 (SlideTheme)
| 属性 | 类型 | 说明 |
|---|
| backgroundColor | string | 页面背景颜色 |
| themeColor | string | 主题色 |
| fontColor | string | 字体颜色 |
| fontName | string | 字体 |
| outline | PPTElementOutline | 边框 |
| shadow | PPTElementShadow | 阴影 |