# 统一笔记 (/zh-CN/realtime-media/whiteboard/whiteboard-sdk/build/extend-whiteboard/unified-notes)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<_PlatformTabsGroup>
<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="android" />
适用于 **Whiteboard Android SDK 2.16.134**。

统一笔记通过 `originSize` 固定书写参考尺寸，便于不同屏幕比例的客户端以一致的课件坐标显示和编辑笔记。MainView、Slide、Presentation 分别配置；MainView 的配置不会自动继承给课件。

## 主白板参考尺寸 [#主白板参考尺寸]

```java
WindowParams windows = new WindowParams()
    .setOriginSize(new WindowOriginSize(1280, 720))
    .setPageScaleRange(new PageScaleRange().setMinScale(0.5).setMaxScale(4.0));
roomParams.setWindowParams(windows);
```

width/height 必须为有限正数。可写端传入新的 MainView originSize 时，会重置并同步主视图参考尺寸与相机尺寸约定；同房间应约定一致的尺寸。它不是单纯改变本端 CSS 宽高。

## Slide 与 Presentation 参考尺寸 [#slide-与-presentation-参考尺寸]

```java
WindowAppParam slide = WindowAppParam.createSlideApp(taskId, url, "动态课件");
slide.setOriginSize(new WindowOriginSize(1280, 720));
room.addApp(slide, null);
WindowAppParam presentation = WindowAppParam.createPresentationApp(
    "/presentation/lesson-1", scenes, "静态课件");
presentation.setOriginSize(new WindowOriginSize(1280, 720));
room.addApp(presentation, null);
```

课件的 originSize 最终写入 `attributes.originSize`。Slide 仍使用自己的动态转码资源，Presentation 使用图片页 scenes；参考尺寸不会把静态图片变成动态 PPT。已有课件不会因为新建参数改变而自动批量更新。

## 恢复与读取 [#恢复与读取]

```java
room.fitOriginSizeAndCamera();
```

`fitOriginSizeAndCamera` 恢复 MainView 的参考尺寸和初始相机，不改变其他 App 的 originSize。页面倍率与翻页控制见[统一页面控制](/zh-CN/realtime-media/whiteboard/whiteboard-sdk/build/extend-whiteboard/unified-page-control)：scale=1 为适配大小，可能与相机的绝对 scale 不同。`pageScaleRange` 限制相对适配倍率，未提供的边界不新增业务限制。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="ios" />
适用于 **Whiteboard iOS SDK 2.16.147**。

统一笔记通过 `originSize` 固定书写参考尺寸，便于不同屏幕比例的客户端以一致的课件坐标显示和编辑笔记。MainView、Slide、Presentation 分别配置；MainView 的配置不会自动继承给课件。

## 主白板参考尺寸 [#主白板参考尺寸-1]

```objc
WhiteWindowParams *windows = [WhiteWindowParams new];
windows.originSize = [[WhiteWindowOriginSize alloc] initWithWidth:1280 height:720];
WhiteWindowPageScaleRange *range = [WhiteWindowPageScaleRange new];
range.minScale = @0.5; range.maxScale = @4;
windows.pageScaleRange = range;
roomConfig.windowParams = windows;
```

width/height 必须为有限正数。可写端传入新的 MainView originSize 时，会重置并同步主视图参考尺寸与相机尺寸约定；同房间应约定一致的尺寸。它不是单纯改变本端 CSS 宽高。

## Slide 与 Presentation 参考尺寸 [#slide-与-presentation-参考尺寸-1]

```objc
WhiteWindowOriginSize *size = [[WhiteWindowOriginSize alloc] initWithWidth:1280 height:720];
WhiteAppParam *slide = [WhiteAppParam createSlideApp:@"/slide/lesson-1"
    taskId:taskId url:url title:@"动态课件"];
slide.originSize = size;
[room addApp:slide completionHandler:^(NSString *appId) { NSLog(@"%@", appId); }];
WhiteAppParam *presentation = [WhiteAppParam createPresentationApp:@"/presentation/lesson-1"
    scenes:scenes title:@"静态课件"];
presentation.originSize = size;
[room addApp:presentation completionHandler:^(NSString *appId) { NSLog(@"%@", appId); }];
```

课件的 originSize 最终写入 `attributes.originSize`。Slide 仍使用自己的动态转码资源，Presentation 使用图片页 scenes；参考尺寸不会把静态图片变成动态 PPT。已有课件不会因为新建参数改变而自动批量更新。

## 恢复与读取 [#恢复与读取-1]

```objc
[room fitOriginSizeAndCamera];
```

`fitOriginSizeAndCamera` 恢复 MainView 的参考尺寸和初始相机，不改变其他 App 的 originSize。页面倍率与翻页控制见[统一页面控制](/zh-CN/realtime-media/whiteboard/whiteboard-sdk/build/extend-whiteboard/unified-page-control)：scale=1 为适配大小，可能与相机的绝对 scale 不同。`pageScaleRange` 限制相对适配倍率，未提供的边界不新增业务限制。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="web" />
适用于 **Whiteboard Web SDK 2.16.59**。

统一笔记通过 `originSize` 固定书写参考尺寸，便于不同屏幕比例的客户端以一致的课件坐标显示和编辑笔记。MainView、Slide、Presentation 分别配置；MainView 的配置不会自动继承给课件。

## 主白板参考尺寸 [#主白板参考尺寸-2]

```typescript
const managerConfig = {
  originSize: { width: 1280, height: 720 },
  pageScaleRange: { minScale: 0.5, maxScale: 4 }
};
const manager = await WindowManager.mount({ room, container, ...managerConfig });
```

width/height 必须为有限正数。可写端传入新的 MainView originSize 时，会重置并同步主视图参考尺寸与相机尺寸约定；同房间应约定一致的尺寸。它不是单纯改变本端 CSS 宽高。

## Slide 与 Presentation 参考尺寸 [#slide-与-presentation-参考尺寸-2]

```typescript
// taskId、url 为已完成动态转码的任务 ID 和资源前缀；scenes 为静态转码图片页。
await manager.addApp({
  kind: "Slide", options: { scenePath: "/slide/lesson-1", title: "动态课件" },
  attributes: { taskId, url, originSize: { width: 1280, height: 720 } }
});
await manager.addApp({
  kind: "Presentation",
  options: { scenePath: "/presentation/lesson-1", scenes, title: "静态课件" },
  attributes: { originSize: { width: 1280, height: 720 } }
});
```

课件的 originSize 最终写入 `attributes.originSize`。Slide 仍使用自己的动态转码资源，Presentation 使用图片页 scenes；参考尺寸不会把静态图片变成动态 PPT。已有课件不会因为新建参数改变而自动批量更新。

## 恢复与读取 [#恢复与读取-2]

```typescript
manager.fitOriginSizeAndCamera();
console.log(manager.originSize);
```

`fitOriginSizeAndCamera` 恢复 MainView 的参考尺寸和初始相机，不改变其他 App 的 originSize。页面倍率与翻页控制见[统一页面控制](/zh-CN/realtime-media/whiteboard/whiteboard-sdk/build/extend-whiteboard/unified-page-control)：scale=1 为适配大小，可能与相机的绝对 scale 不同。`pageScaleRange` 限制相对适配倍率，未提供的边界不新增业务限制。
<_PlatformProcessedMarker close="true" />

<_PlatformProcessedMarker groupMode="structured" canonicalPlatform="web" platform="harmonyos" />
适用于 **Whiteboard HarmonyOS SDK 0.2.11**。

统一笔记通过 `originSize` 固定书写参考尺寸，便于不同屏幕比例的客户端以一致的课件坐标显示和编辑笔记。MainView、Slide、Presentation 分别配置；MainView 的配置不会自动继承给课件。

## 主白板参考尺寸 [#主白板参考尺寸-3]

```typescript
const windowParams = new WindowParams()
  .setOriginSize({ width: 1280, height: 720 })
  .setPageScaleRange({ minScale: 0.5, maxScale: 4 });
// 将 windowParams 传入 WhiteboardOptions。
```

width/height 必须为有限正数。可写端传入新的 MainView originSize 时，会重置并同步主视图参考尺寸与相机尺寸约定；同房间应约定一致的尺寸。它不是单纯改变本端 CSS 宽高。

## Slide 与 Presentation 参考尺寸 [#slide-与-presentation-参考尺寸-3]

```typescript
const slide: WindowAppParam = {
  kind: 'Slide', options: { scenePath: '/slide/lesson-1', title: '动态课件' },
  attributes: { taskId: taskId, url: url }, originSize: { width: 1280, height: 720 }
};
const slideId = await controller.addApp(slide);
const presentation: WindowAppParam = {
  kind: 'Presentation', options: { scenePath: '/presentation/lesson-1', scenes: scenes,
    title: '静态课件' }, originSize: { width: 1280, height: 720 }
};
const presentationId = await controller.addApp(presentation);
```

课件的 originSize 最终写入 `attributes.originSize`。Slide 仍使用自己的动态转码资源，Presentation 使用图片页 scenes；参考尺寸不会把静态图片变成动态 PPT。已有课件不会因为新建参数改变而自动批量更新。

## 恢复与读取 [#恢复与读取-3]

```typescript
controller.fitOriginSizeAndCamera();
```

`fitOriginSizeAndCamera` 恢复 MainView 的参考尺寸和初始相机，不改变其他 App 的 originSize。页面倍率与翻页控制见[统一页面控制](/zh-CN/realtime-media/whiteboard/whiteboard-sdk/build/extend-whiteboard/unified-page-control)：scale=1 为适配大小，可能与相机的绝对 scale 不同。`pageScaleRange` 限制相对适配倍率，未提供的边界不新增业务限制。
<_PlatformProcessedMarker close="true" />
</_PlatformTabsGroup>
