# Univer PDFs API

> PDF Facade API로 PDF 유닛을 생성, 조회, 저장, 진입 및 언로드합니다.

- Human documentation: [https://docs.univer.ai/ko-KR/guides/pdfs/features/core/pdfs-api](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/pdfs-api)

- Agent Markdown: [https://docs.univer.ai/ko-KR/guides/pdfs/features/core/pdfs-api.md](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/pdfs-api.md)

- Requested language: `ko-KR`

- Content language: `ko-KR`

- Documentation version: `1.0.4`

- Source: [pdfs/features/core/pdfs-api.ko-KR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/pdfs/features/core/pdfs-api.ko-KR.mdx)

---

PDF Facade는 `FUniver`에 PDF 유닛과 페이지 진입점을 추가합니다. API 객체를 만들기 전에 부수 효과 진입점을 가져오세요.

## PDF Facade 활성화

```ts
import { FUniver } from '@univerjs/core/facade'

import '@univerjs-pro/pdfs/facade'

const univerAPI = FUniver.newAPI(univer)
```

애플리케이션이 PDF 유닛을 호스팅할 수 있도록 Univer 인스턴스에 `UniverPdfsPlugin`을 등록하세요.

## PDF 유닛 생성, 조회 및 저장

`document`를 생략하면 `createPdf()`가 빈 A4 페이지 하나를 가진 유닛을 만듭니다. 이전에 `save()`가 반환한 스냅샷을 전달하면 유닛을 복원할 수 있습니다.

```ts
const pdf = univerAPI.createPdf({
  id: 'project-brief',
  name: 'Project brief',
})

const activePdf = univerAPI.getActivePdf()
const samePdf = univerAPI.getPdf(pdf.getId())
const snapshot = pdf.save()
```

실행 중인 PDF를 변경할 때는 Facade 메서드나 명령을 사용하세요. 저장된 스냅샷은 분리된 영속화 데이터로 취급하세요.

## 페이지 진입

`FPdfPage`는 페이지의 편집 가능한 오버레이와 가져온 네이티브 텍스트에 접근하는 공통 진입점입니다.

```ts
const firstPage = pdf.getPageByIndex(0) ?? pdf.insertPage()
const elements = firstPage.getElements()
const nativeText = firstPage.getTextSpans()
```

자세한 작업은 [페이지와 요소](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/pages-and-elements.md), [텍스트와 목록](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/text-and-lists.md), [표](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/tables.md), [이미지와 구분선](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/images-and-dividers.md), [주석과 네이티브 텍스트](https://docs.univer.ai/ko-KR/guides/pdfs/features/core/annotations-and-native-text.md)를 참고하세요.

## PDF 유닛 언로드

더 이상 필요하지 않은 PDF 유닛은 ID로 언로드하세요. 전체 애플리케이션을 종료할 때만 루트 `univer` 인스턴스를 폐기하세요.

```ts
const pdf = univerAPI.getActivePdf()

if (pdf) {
  univerAPI.disposeUnit(pdf.getId())
}
```

정확한 시그니처와 반환 타입은 [PDF Facade 레퍼런스](https://docs.univer.ai/ko-KR/reference/facade/pdf.md)를 참고하세요.
