演示文稿数据结构

ISlideData

ISlideData 是一份 Univer Slides 演示文稿的持久化快照,存储演示文稿元数据、有序的幻灯片集合、可选的母版与版式层、切换效果、主题和资源。

必填属性

属性类型描述
idstring演示文稿 unit 的唯一 ID。
namestring演示文稿显示名称。
defaultPageSizeISlidePageSize页面未指定自身尺寸时使用的默认宽度和高度。
slideOrderstring[]按演示顺序排列的幻灯片 ID。
slidesRecord<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?IResourcesSlides 与功能插件提供的资源。
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 方法或已注册的命令,不要直接修改快照对象。

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.