# WeasyPrint и PDF на Windows

WeasyPrint требует нативные библиотеки GTK (в частности GObject). Сообщение вида `cannot load library 'libgobject-2.0-0'` означает, что рантайм GTK не установлен или не виден процессу Python.

## Вариант 1: GTK3 Runtime для Windows

1. Откройте релизы установщика GTK для Windows, например:
   [GTK-for-Windows-Runtime-Environment-Installer](https://github.com/tschoonj/GTK-for-Windows-Runtime-Environment-Installer/releases)
2. Скачайте и установите **64-bit** сборку, подходящую к вашей версии Python (обычно 64-bit).
3. Добавьте в **PATH** каталог `bin` установленного GTK (например `C:\Program Files\GTK3-Runtime Win64\bin`).
4. **Полностью закройте** IDE и терминал и откройте заново — чтобы подхватился новый PATH.
5. Проверка:

```powershell
python -c "from weasyprint import HTML; print('OK')"
```

Если выводится `OK`, PDF в проекте может генерироваться через WeasyPrint.

## Вариант 2: Резервный PDF (xhtml2pdf)

В проекте установлен пакет **xhtml2pdf** (чистый Python / ReportLab). Если WeasyPrint не загружается из‑за GTK, сервер **автоматически** пытается сформировать PDF через xhtml2pdf. Качество вёрстки может отличаться от WeasyPrint, но файл PDF создаётся **без** `libgobject` и GTK.

Зависимость: `pip install xhtml2pdf` (уже в `requirements.txt`).

## Вариант 3: Только HTML / DOCX

Если оба PDF-движка не справились с разметкой, проект **не падает**. Доступны:

- скачивание **HTML** резюме (`/api/resume/<id>/export/html/`),
- **DOCX** (из контекста или из HTML).

См. логи Django: `WeasyPrint / PDF пропущен` или сообщение от `xhtml2pdf`.

## Полезно знать

- Виртуальное окружение `venv` наследует PATH при запуске из того же терминала, где PATH уже обновлён.
- Если Python установлен из Microsoft Store, пути к DLL иногда отличаются — при сбоях пробуйте установку Python с [python.org](https://www.python.org/downloads/windows/).
