# 문서 데이터 구조

- Human documentation: [https://docs.univer.ai/ko-KR/guides/docs/model/document-data](https://docs.univer.ai/ko-KR/guides/docs/model/document-data)

- Agent Markdown: [https://docs.univer.ai/ko-KR/guides/docs/model/document-data.md](https://docs.univer.ai/ko-KR/guides/docs/model/document-data.md)

- Requested language: `ko-KR`

- Content language: `ko-KR`

- Documentation version: `1.0.4`

- Source: [docs/model/document-data.ko-KR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/docs/model/document-data.ko-KR.mdx)

---

## IDocumentData

[`IDocumentData`](https://docs.univer.ai/ko-KR/reference/types/document-data.md)는 Univer Docs에서 사용하는 스냅샷 형식입니다.

텍스트 본문, 문서 수준 스타일, 머리글과 바닥글, 그리기 객체, 목록, 표, 플러그인 리소스를 포함하는 완전한 문서 단위를 나타냅니다.

### 속성

| 속성             | 타입                  | 설명                                                       |
| -------------- | ------------------- | -------------------------------------------------------- |
| id             | `string`            | 고유한 문서 단위 ID입니다.                                         |
| rev?           | `number`            | 공동 편집에 사용되는 문서 리비전입니다.                                   |
| locale?        | `LocaleType`        | 문서의 로캘입니다.                                               |
| title?         | `string`            | 문서 제목입니다.                                                |
| body?          | `IDocumentBody`     | 기본 리치 텍스트 본문입니다. [자세히](https://docs.univer.ai/ko-KR/guides/docs/model/document-body.md) |
| documentStyle  | `IDocumentStyle`    | 문서 수준의 페이지, 레이아웃, 머리글/바닥글 및 기본 텍스트 스타일 설정입니다.            |
| settings?      | `IDocumentSettings` | `zoomRatio`와 같은 런타임 설정입니다.                               |
| resources?     | `IResources`        | 플러그인 리소스입니다.                                             |
| disabled?      | `boolean`           | 문서가 비활성화되었는지 여부입니다.                                      |
| headers?       | `IHeaders`          | 머리글 ID를 키로 사용하는 머리글 본문입니다.                               |
| footers?       | `IFooters`          | 바닥글 ID를 키로 사용하는 바닥글 본문입니다.                               |
| lists?         | `ILists`            | 단락 글머리 기호에서 사용하는 목록 정의입니다.                               |
| drawings?      | `IDrawings`         | 이미지와 같은 그리기 객체입니다.                                       |
| drawingsOrder? | `string[]`          | 그리기 객체의 렌더링 순서입니다.                                       |
| tableSource?   | `ITables`           | 문서 본문에서 참조하는 표 정의입니다.                                    |

### 예제

```typescript
const documentData: IDocumentData = {
  id: 'doc-1',
  title: 'Demo Document',
  locale: LocaleType.EN_US,
  body: {
    dataStream: 'Hello Univer\r\n',
    textRuns: [
      {
        st: 0,
        ed: 12,
        ts: { fs: 14 },
      },
    ],
    paragraphs: [
      {
        startIndex: 12,
        paragraphId: 'paragraph-1',
      },
    ],
  },
  documentStyle: {
    pageSize: { width: 595, height: 842 },
    marginTop: 72,
    marginBottom: 72,
    marginLeft: 72,
    marginRight: 72,
  },
}
```

### 용도

`IDocumentData`는 주로 다음 용도로 사용됩니다.

1. [Univer Docs 문서 만들기](https://docs.univer.ai/ko-KR/guides/docs/features/core/docs-api.md#create-document)
2. [Univer Docs 스냅샷 저장하기](https://docs.univer.ai/ko-KR/guides/docs/features/core/docs-api.md#get-document-data)
3. [`.docx` 파일 가져오기 또는 내보내기](https://docs.univer.ai/ko-KR/guides/docs/features/import-export.md)
4. `ICellData.p`를 통해 Sheets 셀 안에 리치 텍스트 저장하기

> [!WARNING]
> 스냅샷은 영구 저장되는 데이터 구조입니다. 문서가 실행 중일 때 직접 변경하지 마세요. 문서 콘텐츠를 수정하려면 Facade API 또는 명령을 사용하세요.
