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

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

Агент через исходящее соединение сообщает CloudPrint системные очереди принтеров. Интеграция читает их состояние из Public API, сохраняет CloudPrint printer_id и проверяет capabilities перед печатью.

Проверьте агент

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 и статус, но не маршрутизируйте по имени. После пересоздания системной очереди требуйте повторное назначение и тест.

Capabilities — это контракт

RAW требует совпадающий language_profiles[*].language и raw_passthrough_available=true. PDF требует системной печати или доступного renderer-маршрута. До нестандартных color, duplex, orientation, copies, media, scale, offsets и DPI проверяйте возможности.

Пагинация и offline

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

Что означает endpoint

Driver, port, OS и connection type — диагностическое описание локального spooler, а не адрес для вызова backend-ом. Credentials из device URI редактируются до выдачи.

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

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

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

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