# ページと要素

> PDF ページを作成し、編集可能な要素を列挙して、形状と重なり順を制御します。

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

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

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.2.0`

- Source: [pdfs/features/core/pages-and-elements.ja-JP.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/pdfs/features/core/pages-and-elements.ja-JP.mdx)

---

`FPdf` がページを所有し、各 `FPdfPage` はそのページに配置された永続的な編集可能オーバーレイを公開します。

## ページを取得、挿入する

ページインデックスは 0 始まりです。`insertPage(index?)` は指定位置に挿入し、省略時は末尾に追加します。空の文書では A4 サイズが使われます。

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

if (!pdf) {
  throw new Error('No active PDF')
}

const page = pdf.getPageByIndex(0) ?? pdf.insertPage()
const pages = pdf.getPages()
const samePage = pdf.getPageById(page.getId())
```

## 編集可能な要素を列挙する

`getElements()` は編集可能なオーバーレイを z 順で返します。インポートした PDF のネイティブオブジェクトは含みません。

```ts
const elements = page.getElements()
const [firstElement] = elements
const sameElement = firstElement ? page.getElementById(firstElement.getId()) : null
```

専用ラッパーが必要な場合は、型付き getter の `getTextBoxes()`、`getParagraphs()`、`getLists()`、`getTables()`、`getImages()`、`getDividers()`、`getAnnotations()` を使用します。

## 要素を変換、削除する

Facade の配置は PDF ポイントを使います。`getData()` のスナップショット形状はコア PDF 単位なので、配置の更新には Facade メソッドを使用してください。

```ts
const [element] = page.getElements()

if (element) {
  element
    .setPosition(36, 72)
    .setSize(288, 144)
    .setRotation(5)
    .setVisible(true)
    .setLocked(false)
    .bringToFront()
}
```

編集可能な要素を削除するには `remove()` を使用します。削除後は無効になったラッパーを再利用しないでください。
