ПринтМенеджер: базовая конфигурация - Сингл

Назначение

Эта статья разбирает архитектуру обработки заданий печати, копирования и сканирования.

Роль в системе

ПринтМенеджер нужен для обработки заданий печати, сканирования и копирования, а также для авторизации пользователя на устройстве.

Логические блоки

Общие компоненты (как в мониторинге)

Компоненты, специфичные для ПринтМенеджера

Компонент Роль
Сервер печати CUPS Обрабатывает очереди печати, работает с драйверами принтеров, отправляет задания на физическое устройство.
Файловый сервер CUPS Позволяет эффективно скачивать задания из CUPS.
Локальное хранилище образов документов Директория на диске сервера ПринтМенеджера. Хранит образы документов (PDF/PostScript). В базе данных не рекомендуется хранить документы, поэтому для них выделено отдельное хранилище, а в PostgreSQL хранятся только метаданные (ссылка на задание, атрибуты задания: дуплекс, цветность и т.д.), а образ лежит в хранилище.
Временное объектное хранилище Транзитная зона для МФУ, которые не умеют отправлять данные напрямую в систему и работают только через FTP/SMB/сетевые папки. Celery забирает образ оттуда и передаёт дальше по цепочке в постоянное хранилище.
Конвертер- сервер Нужен для МФУ, которые не поддерживают встроенное приложение и используют внешнее устройство авторизации (например, кардридер). Конвертер формирует авторизационные данные и приводит их к формату, понятному Django.

Сценарий 1: печать через Клиент ПМ

На АРМ пользователя установлен Клиент ПМ — компонент, работающий с очередью печати рабочей станции, управляющий принтерами на АРМ и отвечающий за применение экономии тонера. Путь задания при печати через клиента ПМ:

  1. Пользователь отправляет документ на печать. Задание попадает в локальную очередь печати рабочей станции.
  2. Клиент ПМ забирает задание из локальной очереди, конвертирует его в PDF — основной формат для дальнейшей обработки в Printum — и извлекает атрибуты (формат, дуплекс, количество страниц, цветность, ориентация, разбор по копиям).
  3. Клиент ПМ добавляет задание в серверную очередь печати ПринтМенеджера. На сервере Django создаёт внутреннее задание и кладёт метаданные в PostgreSQL; ПринтМенеджер проверяет и применяет к заданию правила печати.
  4. Клиент ПМ запрашивает у ПринтМенеджера настройки оптимизации печати (например, параметры экономии тонера), применяет их и отправляет обработанный образ документа на сервер в локальное хранилище образов.
  5. Дальнейший путь зависит от типа печати:
    • Прямая печать — задание уходит в сервер печати CUPS, CUPS отправляет его на МФУ.
    • Отложенная печать — задание остаётся в очереди ПринтМенеджера. Пользователь авторизуется во встроенном приложении на МФУ (PIN-код или карта), приложение запрашивает список заданий; после выбора пользователем и нажатия «Печать» задание уходит в CUPS, CUPS — на МФУ.
  6. После отправки на печать ПринтМенеджер переводит задание в архив, обновляет статистику, которая потом подгружается мониторингом.

Сценарий 2: бесклиентская печать

Настраивается через виртуальный принтер со ссылкой напрямую на CUPS ПринтМенеджера, без установки Клиента ПМ на АРМ. К виртуальному принтеру подключается один из универсальных PostScript-драйверов: Xerox Global Print Driver PostScript, Konica Minolta Universal PS, HP Universal Printing PS.

Путь задания при печати без клиента ПМ:

  1. Универсальный драйвер формирует PostScript-задание и отправляет его напрямую в CUPS ПринтМенеджера, минуя Django на этом шаге.
  2. Django периодически опрашивает CUPS; обнаружив новое задание, создаёт собственное внутреннее задание и заполняет его атрибутами, разобрав пришедший PostScript-файл.
  3. Дальнейшая обработка зависит от настройки USE_PS_PRINTING: если она выключена — задание конвертируется в PDF; если включена, но для задания действуют правила по количеству страниц, цветности или автоудалению после печати — задание всё равно конвертируется в PDF; если таких правил нет — конвертация не выполняется, и задание остаётся в PostScript.
  4. ПринтМенеджер применяет правила печати к заданию; метаданные сохраняются в PostgreSQL, образ — в хранилище образов (локальное или внешнее).
  5. Исходное PostScript-задание удаляется из CUPS — дальше система работает только со своей внутренней копией задания.
  6. Дальнейший путь зависит от типа печати:
    • Прямая печать — сформированное задание отправляется в CUPS, CUPS передаёт его на МФУ.
    • Отложенная печать — задание остаётся в очереди ПринтМенеджера до авторизации пользователя во встроенном приложении на МФУ, дальше — как в сценарии с Клиентом ПМ.
  7. После печати — архивирование задания, обновление статистики и синхронизация с мониторингом как обычно.

Печать через почту (IMAP)

Помимо клиентской/бесклиентской печати с АРМ, есть сценарий отправки задания на специальный почтовый ящик. Периодическая задача Celery проверяет этот ящик по протоколу IMAP; обнаружив новое письмо с вложением, система забирает его и обрабатывает как обычное задание печати — метаданные в PostgreSQL, образ в локальное хранилище, дальнейшая авторизация и печать не отличаются от прочих сценариев.

Прочие внешние компоненты базовой конфигурации

Важно: ПринтМенеджеров может быть несколько

Базовая конфигурация (Сингл) — это один сервер. Если в инфраструктуре несколько ПринтМенеджеров, это происходит по одной из двух причин: нужна отказоустойчивость/производительность или несколько географически разнесённых филиалов.

Связанные статьи


Revision #3
Created 2026-07-12 15:02:20 UTC by DD
Updated 2026-07-12 15:21:59 UTC by DD