본문으로 건너뛰기

Presentation API

Presentation 문서를 연 iframe에는 Office.show(iframe)을 사용합니다. module 식별자는 show이고 제품명은 Presentation입니다.

먼저 Editor SDK 빠른 시작의 배포 파일·import map·HTTP 서버 설정을 완료하고, 이 문서 종류를 office-frame iframe에 엽니다. 아래 JavaScript 블록은 같은 모듈 스크립트에서 순서대로 사용합니다. 쓰기 예제는 문서를 변경하므로 샘플이나 복사본에서 실행합니다.

객체 모델

루트 핸들은 Show.Document입니다. 현재 카탈로그의 객체 타입: Slide, Shape, Image, Line, Group, Chart, Table, TableCell, Comment.

모든 핸들 메서드는 편집기와의 왕복이며 Promise를 반환합니다.

슬라이드와 도형

import { Office, ShapePreset } from "@thinkfree.dev/tfo-sdk";

const iframe = document.querySelector("#office-frame");
const show = Office.show(iframe);
await show.whenReady();

const doc = show.getDocument();
const slides = await doc.getSlides();
if (!slides.length) throw new Error("Open a presentation with at least one slide.");
const shape = await slides[0].insertShape(ShapePreset.RECT, { x: 100, y: 100, width: 300, height: 120 });
await shape.insertText("Quarterly update");

const added = await doc.insertSlide();
await added.appendSlideNoteText("Speaker notes");

await doc.save();

도형 프리셋 등 공통 상수(ShapePreset, LineDash, ShapeZOrder, Chart*)는 flat export입니다. Presentation 전용 상수는 Show 네임스페이스에 있습니다(예: Show.ShapeType, Show.SlideLayoutType).

도형 타입 좁히기

findShapes()getShapes()는 도형 종류의 union을 반환합니다. 왕복 없는 동기 타입 가드로 좁힐 수 있습니다.

for (const s of await slides[0].getShapes()) {
if (s.isImage()) console.log("image", await s.getSize());
else if (s.isTable()) console.log("table", await s.getRowCount());
else if (s.isShape()) console.log("shape", await s.getText());
}

도형 핸들의 가드: isShape(), isImage(), isLine(), isGroup(), isChart(), isTable().

오류

실패한 작업은 SDKError로 거부되며, 편집기의 구조화된 응답은 error.data(error.data.error.code)에 있습니다. 전체 오류 표는 문서 도구 및 오류를 참고하십시오.

API 레퍼런스

현재 SDK 빌드의 Presentation 핸들에서 사용할 수 있는 객체 타입마다 레퍼런스 페이지가 하나씩 있습니다. SDK 타입 정의에서 생성되며, 메서드 요약 표 다음에 메서드별 TypeScript 시그니처, 매개변수, 반환값이 이어집니다. 모든 메서드는 Promise를 반환합니다. 아래 표나 사이드바에서 객체 타입을 고르십시오.

Generated from the SDK type definitions

Presentation · 객체 타입 10개 · 메서드 586개 · 네임스페이스 Show. 이 레퍼런스는 SDK 빌드와 함께 생성된 API 문서 아티팩트(sdk-api-doc.html)에서 생성됩니다. 설명은 게시된 편집기 API 주석 그대로입니다. SDK와 Office 버전을 함께 고정하고, 둘 중 하나가 바뀌면 다시 생성하십시오.

객체 타입메서드얻는 방법
Show.Document56app.getDocument()
Show.Slide60Document.duplicateSlide(), Document.duplicateSlides(), Document.findSlides(), …
Show.Shape117Document.findShapes(), Slide.duplicateShape(), Slide.duplicateShapes(), …
Show.Image69Slide.insertImage(), Slide.insertWebVideo()
Show.Line70-
Show.Group37Slide.groupShapes()
Show.Chart50Document.findCharts(), Slide.findCharts()
Show.Table56Document.findTables(), Slide.findTables(), Slide.insertTable()
Show.TableCell57Table.findCells(), Table.getCell(), Table.getCells(), …
Show.Comment14Document.findComments(), Slide.findComments(), Slide.getComments(), …

상수 멤버는 Show.* 페이지에 있습니다.