# Страницы и элементы

> Создавайте страницы PDF, перечисляйте редактируемые элементы и управляйте их геометрией и порядком наложения.

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

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

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

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

---

`FPdf` владеет страницами, а каждый `FPdfPage` предоставляет сохраняемые редактируемые наложения на этой странице.

## Чтение и вставка страниц

Индексы страниц начинаются с нуля. `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
```

Для специализированной обёртки используйте типизированные методы: `getTextBoxes()`, `getParagraphs()`, `getLists()`, `getTables()`, `getImages()`, `getDividers()` и `getAnnotations()`.

## Преобразование и удаление элементов

Фасад задаёт размещение в пунктах PDF. Геометрия снимка `getData()` использует внутренние единицы PDF, поэтому изменяйте размещение методами фасада.

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

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

Используйте `remove()` для удаления редактируемого элемента. После удаления не используйте устаревшую обёртку повторно.
