---
title: "Przesyłanie dokumentów PDF i RAW"
description: "Wybierz multipart, publiczny adres HTTPS lub Base64 i przygotuj plik PDF albo dane RAW języka drukarki."
---
<nav class="docs-breadcrumb" aria-label="Breadcrumb"><a href="/pl/docs/">Dokumentacja CloudPrint</a><span aria-hidden="true">/</span><span>Print API</span></nav>

# Przesyłanie dokumentów PDF i RAW

<p class="docs-lead">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.</p>

## 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

<div class="docs-card-grid"><a class="docs-card" href="/pl/docs/api/agents-and-printers/"><strong>Połączenie agenta i wybór drukarki</strong><span>Zainstaluj agenta CloudPrint, wykryj lokalne kolejki i zapisz stabilny printer_id zgodny z możliwościami drukarki.</span></a>
<a class="docs-card" href="/pl/docs/api/print-jobs/"><strong>Tworzenie i śledzenie zadań druku</strong><span>Twórz idempotentne zadania CloudPrint, sprawdzaj opcje drukarki i bezpiecznie śledź je aż do stanu końcowego.</span></a>
<a class="docs-card" href="/pl/docs/guides/shipping-labels/"><strong>Drukowanie etykiet wysyłkowych z aplikacji</strong><span>Wysyłaj gotowe etykiety PDF albo dane RAW w języku ZPL, TSPL lub CPCL ze sklepu internetowego, WMS albo ERP na właściwą drukarkę.</span></a></div>

<nav class="docs-resource-links" aria-label="Następne kroki"><a href="https://cloudprint.me/status/">Status usługi</a><a href="/pl/docs/api/v1/explorer/">OpenAPI</a><a href="https://developer.cloudprint.me">Developer Portal</a><a href="https://my.cloudprint.me">Otwórz panel</a><a href="/docs/legal/privacy/">Polityka prywatności</a><a href="/pl/docs/legal/terms/">Regulamin</a><a href="/pl/docs/legal/data-processing/">DPA</a><a href="/docs/legal/service-level-agreement/">Service Level Agreement</a></nav>