# Univer PDFs API

> PDF Facade API を通じて PDF ユニットを作成、取得、保存、操作、アンロードします。

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

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

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.2.0`

- Source: [pdfs/features/core/pdfs-api.ja-JP.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/pdfs/features/core/pdfs-api.ja-JP.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 ページを 1 枚持つユニットを作成します。`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/ja-JP/guides/pdfs/features/core/pages-and-elements.md)、[テキストとリスト](https://docs.univer.ai/ja-JP/guides/pdfs/features/core/text-and-lists.md)、[テーブル](https://docs.univer.ai/ja-JP/guides/pdfs/features/core/tables.md)、[画像と区切り線](https://docs.univer.ai/ja-JP/guides/pdfs/features/core/images-and-dividers.md)、[注釈とネイティブテキスト](https://docs.univer.ai/ja-JP/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/ja-JP/reference/facade/pdf.md)を参照してください。
