演示文稿数据结构
ISlideData
ISlideData 是一份 Univer Slides 演示文稿的持久化快照,存储演示文稿元数据、有序的幻灯片集合、可选的母版与版式层、切换效果、主题和资源。
必填属性
| 属性 | 类型 | 描述 |
|---|---|---|
id | string | 演示文稿 unit 的唯一 ID。 |
name | string | 演示文稿显示名称。 |
defaultPageSize | ISlidePageSize | 页面未指定自身尺寸时使用的默认宽度和高度。 |
slideOrder | string[] | 按演示顺序排列的幻灯片 ID。 |
slides | Record<string, ISlidePage> | 以幻灯片 ID 为键的普通幻灯片。 |
可选属性
| 属性 | 类型 | 描述 |
|---|---|---|
rev? | number | 快照修订号。 |
appVersion? | string | 生成快照的 Univer 版本。 |
locale? | LocaleType | 演示文稿语言环境。 |
masterPageOrder? | string[] | 按存储顺序排列的母版页面 ID。 |
masterPages? | Record<string, ISlideMasterPage> | 以 ID 为键的母版页面。 |
layoutPageOrder? | string[] | 按存储顺序排列的版式页面 ID。 |
layoutPages? | Record<string, ISlideLayoutPage> | 以 ID 为键的版式页面。 |
handoutMasterPageOrder? | string[] | 按存储顺序排列的讲义母版 ID。 |
handoutMasterPages? | Record<string, ISlideHandoutMasterPage> | 以 ID 为键的讲义母版。 |
notesMasterPageOrder? | string[] | 按存储顺序排列的备注母版 ID。 |
notesMasterPages? | Record<string, ISlideNotesMasterPage> | 以 ID 为键的备注母版。 |
activeSlideId? | string | 当前活动幻灯片 ID。 |
transitionRecords? | Record<string, ISlideTransition> | 以切换效果 ID 为键的可复用切换效果。 |
slideTransitionRefs? | Record<string, string> | 幻灯片 ID 到切换效果 ID 的映射。 |
theme? | ISlideThemeData | 演示文稿默认主题。 |
themes? | Record<string, ISlideThemeData> | 以主题 ID 为键的附加主题。 |
zoomRatio? | number | 持久化的演示文稿缩放比例。 |
resources? | IResources | Slides 与功能插件提供的资源。 |
custom? | SlideCustomData | 应用自定义的演示文稿元数据。 |
有序页面记录
slideOrder 中的每个 ID 都应对应 slides 中的一项。可选的母版、版式、讲义母版和备注母版层也采用“顺序数组 + 以 ID 为键的记录”这一结构。存在 activeSlideId 时,它应对应 slides 中的一项。
TypeScript
import type { ISlideData } from '@univerjs-pro/slides'import { PageTypeEnum } from '@univerjs-pro/slides'const slideData: ISlideData = { id: 'deck-1', name: '产品路线图', defaultPageSize: { width: 960, height: 540 }, slideOrder: ['slide-1'], slides: { 'slide-1': { id: 'slide-1', name: '开场页', pageType: PageTypeEnum.Slide, elementOrder: [], elements: {}, }, }, activeSlideId: 'slide-1',}使用方法
将快照传给 univerAPI.createPresentation(slideData) 可以恢复演示文稿。通过 presentation.save() 获取当前 ISlideData 快照,用于持久化、导出、打印或服务端处理。
注意
快照是持久化数据,不是运行中的 SlideModel。演示文稿启动后,请使用 Slides Facade 方法或已注册的命令,不要直接修改快照对象。
你觉得这篇文档如何?