Przejdź do treści

Połączenie agenta i wybór drukarki

Agent zgłasza kolejki systemowe przez połączenie wychodzące. Integracja czyta stan z Public API, zapisuje CloudPrint printer_id i ocenia capabilities przed wydrukiem.

Sprawdź agenta

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
}

Lista wymaga agents:read. Agent powinien być online; w diagnostyce sprawdzaj update.required i wersje.

Pobierz drukarki

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

Skrócona odpowiedź z polami wyboru:

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
}

Zapisz właściwy ID

Zapisz printer_id dla lokalizacji lub procesu. Pokaż administratorowi name, agent_name i status, ale nie routuj po nazwie. Po odtworzeniu kolejki wymagaj ponownego przypisania i testu.

Capabilities jako kontrakt

RAW wymaga zgodnego language_profiles[*].language i raw_passthrough_available=true. PDF wymaga druku systemowego lub renderera. Przed color, duplex, orientation, copies, media, scale, offsets i DPI sprawdzaj możliwości.

Paginacja i offline

Obie listy zwracają next_cursor. Używaj ?limit=100&cursor=VALUE do null. Nie wysyłaj automatycznie na offline i nie wybieraj po cichu drukarki innej lokalizacji.

Znaczenie endpoint

Driver, port, OS i connection type są diagnostyką lokalnego spoolera, a nie adresem wywoływanym przez backend. Credentials w URI są redagowane.

Lista kontrolna przed wdrożeniem

  • Korzystaj z wychodzącego połączenia agenta; nie wystawiaj portów drukarki do internetu.
  • Zapisuj stabilny identyfikator drukarki, a nie tylko jej nazwę.
  • Sprawdzaj format dokumentu, rozmiar strony i orientację przed utworzeniem zadania.
  • Jawnie obsługuj status końcowy, ponowienia i ochronę przed podwójnym drukiem.

Następne kroki

Przewodniki dotyczące integracji CloudPrint, podłączania lokalnego agenta i obsługi procesów drukowania.