---
title: "Подключение агента и выбор принтера"
description: "Установите агент CloudPrint, получите локальные очереди печати и сохраните стабильный printer_id с учётом возможностей принтера."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/docs/">Документация CloudPrint</a><span aria-hidden="true">/</span><span>Print API</span></nav>

# Подключение агента и выбор принтера

<p class="docs-lead">Агент подключается к CloudPrint сам и передаёт сведения о доступных системных очередях печати. Ваша система получает их состояние через Public API, сохраняет выбранный `printer_id` и перед печатью проверяет возможности принтера.</p>

## Проверьте состояние агента

```bash
curl -sS 'https://public-api.cloudprint.me/api/v1/agents?limit=50' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

```json
{
  "agents": [
    {
      "agent_id": "22222222-2222-4222-8222-222222222222",
      "name": "Warehouse PC agent",
      "status": "online",
      "hostname": "warehouse-pc",
      "version": "0.1.1",
      "update": {
        "status": "up_to_date",
        "current_version": "0.1.1",
        "latest_version": "0.1.1",
        "minimum_supported_version": "0.1.0",
        "channel": "stable",
        "required": false
      },
      "last_seen_at": "2026-06-08T10:10:00+00:00"
    }
  ],
  "next_cursor": null
}
```

Для получения списка нужно разрешение `agents:read`. Агент должен иметь статус `online`. При диагностике также проверяйте `update.required` и сведения о версии.

## Получите принтеры

```bash
curl -sS 'https://public-api.cloudprint.me/api/v1/printers?limit=100' \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

Сокращённый ответ с полями выбора:

```json
{
  "printers": [
    {
      "printer_id": "11111111-1111-4111-8111-111111111111",
      "agent_id": "22222222-2222-4222-8222-222222222222",
      "name": "Warehouse Label Printer",
      "status": "online",
      "agent_name": "Warehouse PC agent",
      "agent_status": "online",
      "capabilities": {
        "backend": "windows_native",
        "language_profiles": [
          {
            "language": "zpl",
            "version": "zpl2"
          }
        ],
        "supports_custom_media": true,
        "supports_orientation": true,
        "supports_copies": true,
        "supported_dpi": [
          203
        ]
      },
      "endpoint": {
        "system_print_available": true,
        "raw_passthrough_available": true,
        "os": "windows",
        "driver_name": "ZDesigner ZD421-203dpi ZPL",
        "connection_type": "windows_spooler"
      }
    }
  ],
  "next_cursor": null
}
```

## Сохраните правильный ID

Храните `printer_id` в настройке филиала, упаковочного места или процесса. Администратору показывайте `name`, `agent_name` и статус, но не маршрутизируйте по имени. После пересоздания системной очереди требуйте повторное назначение и тест.

## Проверьте возможности принтера

Для RAW нужен подходящий `language_profiles[*].language` и значение `raw_passthrough_available=true`. Для PDF должна быть доступна системная печать или поддерживаемое CloudPrint преобразование. Перед использованием нестандартного режима цвета, двусторонней печати, ориентации, количества копий, размера носителя, масштаба, смещения или DPI проверьте соответствующие поля возможностей.

## Пагинация и недоступные принтеры

Оба списка возвращают `next_cursor`. Запрашивайте `?limit=100&cursor=VALUE`, пока не получите `null`. Не создавайте автоматическое задание для принтера, который не в сети, если продукт явно не поддерживает очередь; не выбирайте молча принтер другого филиала.

## Что означают данные подключения

Поля драйвера, порта, операционной системы и типа подключения описывают локальную очередь печати и нужны для диагностики. Это не адрес, который должен вызывать ваш сервер. Учётные данные в URI устройства скрываются перед выдачей ответа.

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

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

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

<div class="docs-card-grid"><a class="docs-card" href="/docs/api/authentication/"><strong>Авторизация OAuth2 Client Credentials</strong><span>Создайте API-приложение CloudPrint, получите короткоживущий токен и безопасно храните учётные данные с минимально необходимыми разрешениями.</span></a>
<a class="docs-card" href="/docs/api/documents/"><strong>Загрузка PDF и RAW-документов</strong><span>Выберите multipart, публичный HTTPS URL или Base64 и подготовьте PDF либо RAW-данные языка принтера для CloudPrint.</span></a>
<a class="docs-card" href="/docs/troubleshooting/"><strong>Диагностика агентов, принтеров и заданий</strong><span>Находите причину ошибок CloudPrint по идентификатору запроса, статусу задания, подключению агента, возможностям принтера и коду API.</span></a></div>

<nav class="docs-resource-links" aria-label="Следующие шаги"><a href="/docs/api/v1/explorer/">OpenAPI</a><a href="https://my.cloudprint.by">Открыть кабинет</a><a href="/docs/legal/privacy/">Политика конфиденциальности</a><a href="/docs/legal/terms/">Условия использования</a><a href="/docs/legal/payments-and-refunds/">Оплата и возврат</a><a href="/docs/legal/data-processing/">DPA</a></nav>