簡報資料結構
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 方法或已註冊的命令,不要直接修改快照物件。
你覺得這篇文檔如何?