Przejdź do treści

Przesyłanie dokumentów PDF i RAW

Przesyłaj dane gotowe dla wybranej drukarki. Public API przyjmuje PDF lub obsługiwany język RAW; nie konwertuje DOC/DOCX ani nie kupuje etykiet przewoźnika. Dla RAW zawsze jawnie podaj format i język, zamiast polegać na rozpoznawaniu zawartości.

Prześlij PDF

bash
curl -sS https://public-api.cloudprint.me/api/v1/documents \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -F 'file=@invoice.pdf;type=application/pdf'

Sukces zwraca HTTP 201:

json
{
  "document_id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
  "original_filename": "invoice.pdf",
  "mime_type": "application/pdf",
  "document_format": "pdf",
  "document_raw_language": null,
  "size_bytes": 1024
}

Zapisz document_id. Zanim dokument stanie się dostępny, CloudPrint sprawdza go pod kątem złośliwego kodu, uszkodzonej lub zaszyfrowanej struktury, aktywnej zawartości, załączników i niebezpiecznych wymiarów stron. Usuwalne akcje i formularze interaktywne mogą zostać spłaszczone do bezpieczniejszego PDF.

Prześlij RAW

bash
curl -sS https://public-api.cloudprint.me/api/v1/documents \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -F 'file=@label.txt;type=application/octet-stream' \
  -F 'document_format=raw' \
  -F 'document_raw_language=zpl'

Dla RAW pozostaje istniejące uprawnienie documents:write. Dozwolone: zpl, tspl, cpcl, escpos. Drukarka musi zgłaszać ten język i obsługiwać RAW passthrough. CloudPrint przyjmuje obsługiwane polecenia drukowania i formatowania, a odrzuca nieznane polecenia, trwały zapis, konfigurację urządzenia i dostęp do plików. Nie wysyłaj PDF jako RAW.

Utwórz zadanie z publicznego URL

bash
curl -sS https://public-api.cloudprint.me/api/v1/print-jobs/from-url \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: shipment-18452-label-url-v1' \
  -d '{
    "document_url": "https://files.example.com/labels/shipment-18452.pdf",
    "document_filename": "shipment-18452.pdf",
    "printer_id": "11111111-1111-4111-8111-111111111111",
    "copies": 1,
    "intent": "shipping_label",
    "media_width_mm": 100,
    "media_height_mm": 150,
    "dpi": 203
  }'

URL musi używać HTTPS. CloudPrint odrzuca localhost, sieci prywatne i zarezerwowane, osadzone dane dostępowe oraz niebezpieczne przekierowania. Odpowiedź ma standardowy kształt zadania.

Utwórz zadanie z Base64

bash
curl -sS https://public-api.cloudprint.me/api/v1/print-jobs/from-base64 \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: receipt-18452-base64-v1' \
  -d '{
    "document_base64": "JVBERi0xLjQK...",
    "document_filename": "receipt-18452.pdf",
    "printer_id": "11111111-1111-4111-8111-111111111111",
    "copies": 1,
    "intent": "receipt"
  }'

Używaj dla małych dokumentów inline. Base64 zwiększa rozmiar; większe pliki przesyłaj jako multipart lub przez krótko ważny publiczny URL. Odpowiedź ma standardowy kształt zadania.

Wybierz sposób przesłania

Dla plików przechowywanych na serwerze zwykle wybierz multipart /documents. Użyj /from-url, gdy gotowy plik jest dostępny pod bezpiecznym publicznym adresem HTTPS, a /from-base64 dla małych generowanych dokumentów. Każde żądanie tworzące zadanie powinno zawierać Idempotency-Key.

Waliduj wcześniej

Sprawdź typ, rozmiar, wymiary i orientację. Pliki biurowe konwertuj sam. Etykietę wysyłkową najpierw pobierz od przewoźnika; CloudPrint zaczyna od gotowego PDF lub ZPL. Kontrola po stronie serwera jest ostatnią granicą bezpieczeństwa, a nie zastępstwem walidacji generowanych dokumentów.

Błędy uploadu

400 oznacza błędne żądanie multipart, 413 zbyt duży plik, 415 nieobsługiwany typ, a 422 błędne dane lub odrzucenie dokumentu przez kontrolę bezpieczeństwa. Nie ponawiaj niezmienionego żądania po 422. Kod 503 oznacza chwilową niedostępność kontroli; ponów z pierwotnym kluczem idempotencji i ograniczonym, rosnącym opóźnieniem. Decyzje opieraj na error, dokładniejszą przyczynę odczytuj z error_code, komunikat pokaż operatorowi i zapisz X-Request-Id.

Następne kroki

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