Перейти к содержанию

Как CloudPrint печатает на локальных принтерах

CloudPrint связывает приложение в облаке с принтером в офисе, магазине или на складе. Приложение обращается только к Public API, а локальный агент получает разрешённые задания через исходящее соединение.

Компоненты решения

Backend клиента получает токен, выбирает printer_id, передаёт документ и создаёт задание. CloudPrint хранит документ и состояние задания. Локальный агент сообщает о принтерах, резервирует работу и передаёт её в системную очередь или совместимый RAW-канал.

Зачем нужен локальный агент

Принтеры обычно находятся в частной сети и не должны быть публичными сервисами. Агент сам подключается к CloudPrint, поэтому не нужны входящие правила firewall, VPN клиента или удалённый рабочий стол.

Жизненный цикл задания

Новое задание начинается со статуса pending и может пройти через reserved и printing. Конечные статусы — printed и failed. Сохраняйте print_job_id, допускайте появление новых промежуточных значений и показывайте оператору понятное состояние.

Безопасные повторы

Сетевой timeout не должен приводить ко второй физической печати. Формируйте стабильный Idempotency-Key для каждой бизнес-операции. Тот же ключ и payload возвращают исходное задание; изменённый payload с тем же ключом даёт 409 Conflict.

Границы ответственности

CloudPrint доставляет задание по выбранному маршруту и сообщает результат, доступный агенту. Ваше приложение отвечает за выбор принтера клиента, подготовку файла, связь с бизнес-документом и правила осознанного повтора после ошибки.

Чек-лист перед запуском

  • Используйте исходящее подключение агента и не открывайте порты принтера в интернет.
  • Сохраняйте стабильный идентификатор принтера, а не только отображаемое имя.
  • Явно задайте обработку конечных статусов, повторов и защиту от двойной печати.
  • Сохраняйте идентификаторы заданий и причины ошибок для поддержки и мониторинга.

Следующие шаги

Руководства по интеграции CloudPrint, подключению локального агента и эксплуатации печати.