슬라이드 데이터 구조
ISlideData
ISlideData는 하나의 Univer Slides 프레젠테이션을 영속화하는 스냅샷입니다. 프레젠테이션 메타데이터, 순서가 있는 슬라이드 모음, 선택적 마스터 및 레이아웃 계층, 전환, 테마, 리소스를 저장합니다.
필수 속성
| 속성 | 타입 | 설명 |
|---|---|---|
id | string | 프레젠테이션 유닛의 고유 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)에 스냅샷을 전달해 프레젠테이션을 복원할 수 있습니다. 영속화, 내보내기, 인쇄 또는 서버 측 처리에 사용할 현재 ISlideData는 presentation.save()로 가져옵니다.
주의
스냅샷은 영속화 데이터이며 실행 중인 SlideModel이 아닙니다. 프레젠테이션이 시작된 뒤에는 스냅샷 객체를 직접 변경하지 말고 Slides Facade 메서드나 등록된 명령을 사용하세요.
이 가이드는 어떠셨나요?