# ページと要素の構造

- Human documentation: [https://docs.univer.ai/ja-JP/guides/slides/model/slide-page](https://docs.univer.ai/ja-JP/guides/slides/model/slide-page)

- Agent Markdown: [https://docs.univer.ai/ja-JP/guides/slides/model/slide-page.md](https://docs.univer.ai/ja-JP/guides/slides/model/slide-page.md)

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.2.0`

- Source: [slides/model/slide-page.ja-JP.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/slides/model/slide-page.ja-JP.mdx)

---

## ISlidePage

`ISlidePage` は Univer Slides の単一ページオブジェクトを表します。通常のスライド、マスター、レイアウト、配布資料マスター、ノートマスターはすべてこの構造を使用し、`pageType` と任意のプロパティブロックで区別されます。

### ページプロパティ

| プロパティ              | 型                                       | 説明                                  |
| ------------------ | --------------------------------------- | ----------------------------------- |
| id                 | `string`                                | ページの一意な ID。                         |
| pageType           | `PageType`                              | `SLIDE`、`MASTER`、`LAYOUT` などのページ種別。 |
| zIndex             | `number`                                | ページの描画順序。                           |
| title              | `string`                                | ページタイトル。                            |
| description        | `string`                                | ページ説明。                              |
| pageBackgroundFill | `IColorStyle`                           | ページ背景の塗り。                           |
| colorScheme?       | `ThemeColorType`                        | ページが使用するテーマカラースキーム。                 |
| pageElements       | `{ [elementId: string]: IPageElement }` | ページ上の要素。キーは要素 ID。                   |
| slideProperties?   | `ISlideProperties`                      | 通常スライドページのプロパティ。                    |
| layoutProperties?  | `ILayoutProperties`                     | レイアウトページのプロパティ。                     |
| masterProperties?  | `IMasterProperties`                     | マスターページのプロパティ。                      |

## IPageElement

`IPageElement` はページ要素の共通コンテナです。各要素は `left`、`top`、`width`、`height`、`angle`、`scaleX`、`scaleY`、`flipX`、`flipY` などの変換フィールドを持ち、`type` に応じて 1 つのコンテンツペイロードを持ちます。

| 要素タイプ                         | ペイロード         | 説明                                               |
| ----------------------------- | ------------- | ------------------------------------------------ |
| `PageElementType.SHAPE`       | `shape`       | プリセットまたはカスタム図形。図形テキストと図形プロパティを含みます。              |
| `PageElementType.IMAGE`       | `image`       | 画像プロパティと任意のプレースホルダー/リンク情報。                       |
| `PageElementType.TEXT`        | `richText`    | リッチテキスト要素。`rich` フィールドに `IDocumentData` を保存できます。 |
| `PageElementType.SPREADSHEET` | `spreadsheet` | 非推奨の埋め込みワークシートペイロード。                             |
| `PageElementType.DOCUMENT`    | `document`    | 非推奨の埋め込みドキュメントペイロード。                             |
| `PageElementType.SLIDE`       | `slide`       | 非推奨の埋め込みスライドペイロード。                               |

### 例

```typescript
const page: ISlidePage = {
  id: 'slide-1',
  pageType: PageType.SLIDE,
  zIndex: 10,
  title: 'Agenda',
  description: '',
  pageBackgroundFill: { rgb: 'rgb(255,255,255)' },
  pageElements: {
    title: {
      id: 'title',
      zIndex: 1,
      left: 72,
      top: 64,
      width: 600,
      height: 80,
      title: 'Title',
      description: '',
      type: PageElementType.TEXT,
      richText: {
        text: 'Quarterly Review',
      },
    },
  },
}
```

### 注意

* `pageOrder` は表示されるスライド順を制御し、`zIndex` は描画順序を制御します。
* テキスト要素は `richText.text` にプレーンテキストを、`richText.rich` により完全なドキュメントデータを保存できます。
* プラグイン所有の要素ペイロードには、非推奨の埋め込みペイロードではなく `customBlock` を使用してください。
