# Web Workers

- Human documentation: [https://docs.univer.ai/ru-RU/guides/pdfs/getting-started/worker](https://docs.univer.ai/ru-RU/guides/pdfs/getting-started/worker)

- Agent Markdown: [https://docs.univer.ai/ru-RU/guides/pdfs/getting-started/worker.md](https://docs.univer.ai/ru-RU/guides/pdfs/getting-started/worker.md)

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

- Source: [pdfs/getting-started/worker.ru-RU.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/pdfs/getting-started/worker.ru-RU.mdx)

---

PDFs поддерживает отрисовку миниатюр страниц в Worker[^web-worker]. Передайте `thumbnailWorkerURL` в `UniverPdfsUIPlugin`. Worker использует `OffscreenCanvas`. Эта настройка относится к миниатюрам, а не ко всему редактору PDF.

Сначала выполните [установку и базовую настройку](https://docs.univer.ai/ru-RU/guides/pdfs/getting-started/installation.md). Эти фрагменты дополняют существующую конфигурацию. Регистрируйте плагины до создания или загрузки содержимого; изменяйте уже имеющуюся регистрацию без дублирования.

## Основной поток

```typescript title="main.ts"
import { UniverPdfsUIPlugin } from '@univerjs-pro/pdfs-ui'

univer.registerPlugin(UniverPdfsUIPlugin, {
  thumbnailWorkerURL: new Worker(new URL('./worker.ts', import.meta.url), { type: 'module' }),
})
```

## Точка входа Worker

```typescript title="worker.ts"
import { startPdfPageThumbnailWorker } from '@univerjs-pro/pdfs-ui'

startPdfPageThumbnailWorker()
```

Используйте модульный Worker и отдельный файл точки входа. Версии пакетов в обоих потоках должны совпадать. Отрисовка и взаимодействие с пользователем остаются в основном потоке.

[^web-worker]: Web Worker выполняет JavaScript вне главного потока браузера и обменивается с ним сообщениями. Прямого доступа к DOM нет: перенос вычислений не переносит интерфейс редактора.
