---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://3y3.dev/ru/guides/generate-pdf.md
  - href: ru/guides/generate-pdf.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
updatedAt: '2026-07-21T06:39:54.000Z'
---
> **Documentation Index:** Fetch the complete configuration index at https://3y3.dev/ru/llms.txt

# Создание PDF из документации

Diplodoc может генерировать документацию в формате PDF.

## Структура PDF-документа { #structure }

PDF-документ состоит из трех частей:

1. **Титульные и закрывающие страницы** {#start-pages}

    Отображаются в начале и в конце документации, не нумеруются.
    
    Титульные страницы указываются в блоке `startPages` в `toc.yaml`:

    ```yaml
    pdf:
      startPages:
        - path-to-page-1.md
        - path-to-page-2.md
        - path-to-page-n.md
    ```

    Закрывающие страницы указываются в блоке `endPages` в `toc.yaml`:

    ```yaml
    pdf:
      endPages:
        - path-to-page-1.md
        - path-to-page-2.md
        - path-to-page-n.md
    ```

    {% note warning %}

    Страницы из `pdf.startPages` и `pdf.endPages` не поддерживают [локализацию через `yfm translate`](https://3y3.dev/ru/tools/docs/translate.md).

    {% endnote %}

    При сборке документации титульные и закрывающие страницы не трансформируются в файлы. Для проверки их верстки в браузере, используйте при сборке флаг `--pdf-debug`: он создаст HTML-версии страниц из `startPages` и `endPages`.

1. **Оглавление**

    Diplodoc автоматически формирует оглавление на основе `toc.yaml`. Каждый пункт в списке — это ссылка на страницу.

    Названия разделов, объединяющих группу статей, отображаются простым текстом.
    Файлы с [атрибутом `hidden: true`](https://3y3.dev/ru/project/toc.md#hidden) в `toc.yaml` не попадают в PDF. Чтобы включить их, установите [параметр `hiddenPolicy: false`](https://3y3.dev/ru/settings.md#pdf).

1. **Основной контент**

    В PDF поддерживаются все возможности Diplodoc:

    - блоки Page Constructor;
    - перекрестные ссылки;
    - изображения и другие медиа-файлы.

    Каждая следующая статья PDF-документа начинается с новой страницы. Статьи в PDF располагаются в том же порядке, что и в оглавлении.

## Сборка { #build }

### Настройка

1. [Установите пакет `@diplodoc/pdf-generator`](https://3y3.dev/ru/settings.md#pdf).

1. В файле `toc.yaml` добавьте секцию `startPages` для формирования [титульных страниц](#start-pages).

1. Включите поддержку PDF в файле конфигурации `.yfm`:

    ```yaml
    pdf:
      enabled: true
    ```

### Генерация

1. Соберите проект документации:

    ```bash
    yfm build -i . -o ./docs-output --pdf
    ```

    - `-i .` — путь к папке с исходниками (в примере — текущая папка);
    - `-o ./docs-output` — путь к папке для результатов сборки;
    - `--pdf` — флаг, включающий подготовку данных для генерации PDF; если поддержка PDF включена в `.yfm`, флаг передавать не требуется.

1. Запустите генератор PDF:

    ```bash
    npx -- @diplodoc/pdf-generator@latest -i ./docs-output
    ```

{% note info %}

Для каждого файла `toc.yaml` Diplodoc создает отдельный `single-page.pdf`. 

{% endnote %}

## Стилизация { #styles }

Вы можете изменить внешний вид PDF-документа с помощью [CSS-стилей](https://3y3.dev/ru/style/css-js.md).

{% note alert %}

Стили, добавленные внутри Markdown-файлов, Diplodoc удаляет при генерации PDF — это сделано в целях безопасности.

{% endnote %}

## Фильтрация контента { #filtering }

Чтобы показывать или скрывать элементы только в PDF-версии, используйте [пресеты](https://3y3.dev/ru/project/presets.md).

1. Добавьте нужную переменную в `presets.yaml`:

    ```yaml
    pdf:
      version: pdf
    ```

2. Используйте условие в тексте:

    ```markdown
    {% if version == "pdf" %}

    Этот текст появится только в PDF-версии.

    {% endif %}
    ```
