Жизненный цикл задания печати в Принтум
title: Жизненный цикл задания печати в Принтум slug: zhiznennyy-cikl-zadaniya-pechati tags: [задание печати, архитектура, путь задания, CUPS, Клиент ПМ, бесклиентская] domain: Printing type: Overview audience: partner-engineer product_versions: "4.x" status: Draft related_components: [ПринтМенеджер, Клиент ПМ, Встроенное приложение] related_pages:
- kak-printum-obrabatyvaet-zadanie-pecati
- put-zadaniia-pri-pecati-cerez-klient-pm
- put-zadaniia-pri-besklientskoi-pecati
- kak-rabotaet-otlozennaia-pecat
Жизненный цикл задания печати в Принтум
Когда использовать
Для понимания полного пути задания — от нажатия «Печать» на АРМ до выхода документа из МФУ. Помогает локализовать проблему на нужном этапе.
Схемы печати
Принтум поддерживает две схемы отправки заданий:
| Схема | Описание |
|---|---|
| Через Клиент ПМ | На АРМ устанавливается Клиент ПМ. Он добавляет виртуальные МФУ, перехватывает задание из локальной очереди, конвертирует в PDF, применяет экономию тонера и передаёт в ПринтМенеджер |
| Бесклиентская печать | На АРМ не устанавливается ПО Принтум. Используется универсальный драйвер (Xerox Global Print Driver PS, Konica Minolta Universal PS, HP Universal Printing PS), в котором указан адрес сервера ПринтМенеджера. Драйвер формирует задание и отправляет напрямую в CUPS ПринтМенеджера |
Дальнейшая обработка в ПринтМенеджере одинакова для обеих схем.
Путь задания при бесклиентской печати
Этап 1 — Отправка с АРМ
Пользователь в приложении (Word, Excel, браузер) нажимает «Печать» и выбирает МФУ — для прямой или отложенной печати.
Универсальный драйвер формирует задание в формате PostScript (PS) и отправляет его напрямую в CUPS ПринтМенеджера.
Компонент: Универсальный драйвер на АРМ → CUPS ПринтМенеджера
Этап 2 — Получение задания ПринтМенеджером
ПринтМенеджер периодически опрашивает свой CUPS. При обнаружении нового задания создаёт внутри системы собственное пустое задание и заполняет его атрибутами, полученными при парсинге исходного задания с АРМ.
Парсируемые атрибуты:
- формат страницы
- дуплекс
- количество страниц
- цветность
- ориентация
- разбор по копиям
- финишные опции
Компонент: printmanager-celery-print-queue, printmanager-app
Этап 3 — Конвертация
Проверяется настройка USE_PS_PRINTING:
- Выключена → задание конвертируется в PDF.
- Включена → конвертация в PDF выполняется только если есть правила по цветности/количеству страниц или правило автоудаления. В остальных случаях — остаётся в PS.
Компонент: printmanager-app
Этап 4 — Применение правил печати
После конвертации проверяются и применяются правила печати (ограничения, перенаправление, цветность, дуплекс и др.).
Исходное задание, пришедшее с АРМ, удаляется из CUPS — далее используется только пересобранное задание ПринтМенеджера.
Компонент: printmanager-app
Этап 5а — Прямая печать
Задание отправляется из ПринтМенеджера в CUPS → CUPS передаёт на МФУ → МФУ печатает.
Компонент: printmanager-cups
Этап 5б — Отложенная печать
Задание остаётся в очереди ПринтМенеджера. При авторизации пользователя на МФУ Встроенное приложение запрашивает у ПринтМенеджера список заданий пользователя. При нажатии «Печать» в приложении МФУ отправляет запрос в ПринтМенеджер → ПринтМенеджер передаёт задание в CUPS → CUPS передаёт на МФУ → МФУ печатает.
Компонент: printmanager-app, printmanager-cups, Встроенное приложение
Этап 6 — Архивирование и статистика
После успешной печати ПринтМенеджер переводит задание в архив и обновляет статистику. В Мониторинг обновлённая статистика попадает после синхронизации.
Компонент: printmanager-app, синхронизация с Мониторингом
Путь задания при печати через Клиент ПМ
Этап 1 — Отправка с АРМ
Пользователь нажимает «Печать» в приложении → задание попадает в локальную очередь печати АРМ (системная очередь Windows/Linux).
Компонент: ОС АРМ
Этап 2 — Перехват Клиентом ПМ
Клиент ПМ отслеживает локальную очередь печати, получает задание и конвертирует его в PDF.
Клиент ПМ парсит атрибуты задания (те же что и при бесклиентской печати).
Компонент: Клиент ПМ
Этап 3 — Передача в ПринтМенеджер и применение правил
Клиент ПМ добавляет задание в очередь ПринтМенеджера. ПринтМенеджер проверяет и применяет правила печати.
Компонент: Клиент ПМ → printmanager-app
Этап 4 — Экономия тонера
Клиент ПМ запрашивает из ПринтМенеджера настройки оптимизации (экономия тонера) и применяет алгоритм к документу. После этого передаёт образ документа обратно в ПринтМенеджер.
Компонент: Клиент ПМ
Этап 5а — Прямая печать
Клиент ПМ отправляет задание в CUPS ПринтМенеджера → CUPS передаёт на МФУ → МФУ печатает.
Компонент: Клиент ПМ → printmanager-cups
Этап 5б — Отложенная печать
Клиент ПМ не отправляет задание в CUPS — оно остаётся в очереди ПринтМенеджера. Дальнейший путь идентичен отложенной печати при бесклиентской схеме.
Компонент: printmanager-app, printmanager-cups, Встроенное приложение
Этап 6 — Архивирование и статистика
Аналогично бесклиентской схеме: ПринтМенеджер переводит задание в архив и обновляет статистику печати. В Мониторинг данные попадают после синхронизации.
Компонент: printmanager-app, синхронизация с Мониторингом
Сводная таблица: этап → компонент → диагностика
| Этап | Схема | Компонент | Где искать если проблема |
|---|---|---|---|
| Отправка с АРМ | Клиентская | Клиент ПМ, локальная очередь ОС | Лог Клиента ПМ; journalctl или Event Viewer |
| Отправка с АРМ | Бесклиентская | Универсальный драйвер | Настройки драйвера; порт CUPS (631) |
| Получение CUPS | Обе | printmanager-cups, printmanager-celery-print-queue |
docker-compose logs printmanager-cups |
| Парсинг и создание задания | Обе | printmanager-app |
docker-compose logs printmanager-app |
| Конвертация PS→PDF | Обе | printmanager-app |
docker-compose logs printmanager-app |
| Применение правил | Обе | printmanager-app |
docker-compose logs printmanager-app |
| Экономия тонера | Клиентская | Клиент ПМ | Лог Клиента ПМ |
| Отложенная очередь | Обе | printmanager-app |
docker-compose logs printmanager-app; панель ПринтМенеджера → Задания |
| Авторизация на МФУ | Отложенная | printmanager-app, printmanager-converter-server |
docker-compose logs printmanager-app |
| Печать на МФУ | Обе | printmanager-cups |
docker-compose logs printmanager-cups |
| Синхронизация статистики | Обе | printmanager-celery, printum_worker-* |
docker-compose logs printmanager-celery |