Zum Inhalt springen

Druckauftrag erstellen

Senden Sie ein hochgeladenes Dokument mit Idempotenz und expliziten Druckoptionen an einen ausgewählten Drucker.

POST/api/v1/print-jobsAPI-Version: v1operationId: createPrintJobAls Markdown anzeigen

Funktion dieser Methode

Senden Sie ein hochgeladenes Dokument mit Idempotenz und expliziten Druckoptionen an einen ausgewählten Drucker.

Authentifizierung

Senden Sie ein kurzlebiges Token in Authorization: Bearer <access_token>.

Erforderliche Scopes: print_jobs:write

Anfrage

Produktions-URL: https://public-api.cloudprint.me/api/v1/print-jobs

Parameter

NamePositionTypErforderlichBeschreibungEinschränkungen
Idempotency-KeyheaderstringneinStabiler, vom Client erzeugter Schlüssel, damit Wiederholungen das ursprüngliche Ergebnis liefern und kein Duplikat erstellen.maxLength: 128
X-Request-IdheaderstringneinOptionale Kennung zur Anfrageverfolgung; CloudPrint gibt einen sicheren Wert im Antwort-Header zurück.maxLength: 128; example: "order-100045-attempt-1"

Anfrageinhalt

Inhaltstyp: application/json

NameTypErforderlichBeschreibungEinschränkungen
document_idstring (uuid)jaStabile UUID, die nach einem erfolgreichen Dokument-Upload zurückgegeben wird.
printer_idstring (uuid)jaStabile CloudPrint-UUID des Zieldruckers.
copiesintegerneinAnzahl der Exemplare, die CloudPrint beim Drucker anfordert.min: 1; max: 99; example: 1
intentstringneinGeschäftlicher Zweck des Druckauftrags für die Diagnose und sinnvolle Standardwerte.enum: document, shipping_label, product_label, invoice, packing_slip, a4_document, receipt; example: "shipping_label"
color_modestringneinGewünschter Farbmodus; default verwendet die Druckereinstellungen.enum: default, monochrome, color; example: "default"
duplex_modestringneinGewünschter ein- oder beidseitiger Druckmodus.enum: default, simplex, duplex_long_edge, duplex_short_edge; example: "default"
media_width_mmnumber | nullneinGewünschte Breite des Druckmediums oder Etiketts in Millimetern.min: 1; max: 2000; example: 58
media_height_mmnumber | nullneinGewünschte Höhe des Druckmediums oder Etiketts in Millimetern.min: 1; max: 2000; example: 40
dpiinteger | nullneinZielauflösung in Punkten pro Zoll; verwenden Sie einen vom Drucker unterstützten Wert.min: 72; max: 2400; example: 203
scale_modestringneinLegt fest, ob das Dokument seine Größe behält oder an das Zielmedium angepasst wird.enum: none, fit; example: "none"
orientationstringneinGewünschte Seitenausrichtung; default verwendet die Druckereinstellungen.enum: default, portrait, landscape; example: "default"
offset_x_mmnumberneinHorizontaler Druckversatz in Millimetern.min: -2000; max: 2000; example: 0
offset_y_mmnumberneinVertikaler Druckversatz in Millimetern.min: -2000; max: 2000; example: 0
margin_top_mmnumberneinZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
margin_right_mmnumberneinZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
margin_bottom_mmnumberneinZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
margin_left_mmnumberneinZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0

Anfragebeispiele

cURL

bash
curl -sS https://public-api.cloudprint.me/api/v1/print-jobs \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: order-100045-label' \
  -d '{
    "document_id": "44444444-4444-4444-8444-444444444444",
    "printer_id": "11111111-1111-4111-8111-111111111111",
    "copies": 1,
    "intent": "shipping_label",
    "media_width_mm": 58,
    "media_height_mm": 40,
    "dpi": 203
  }'

PHP

php
<?php

$payload = json_encode([
    'document_id' => '44444444-4444-4444-8444-444444444444',
    'printer_id' => '11111111-1111-4111-8111-111111111111',
    'copies' => 1,
    'intent' => 'shipping_label',
    'media_width_mm' => 58,
    'media_height_mm' => 40,
    'dpi' => 203,
], JSON_THROW_ON_ERROR);

$response = file_get_contents('https://public-api.cloudprint.me/api/v1/print-jobs', false, stream_context_create([
    'http' => [
        'method' => 'POST',
        'header' => [
            'Authorization: Bearer ' . getenv('CLOUDPRINT_ACCESS_TOKEN'),
            'Content-Type: application/json',
            'Idempotency-Key: order-100045-label',
        ],
        'content' => $payload,
    ],
]));

$printJob = json_decode((string) $response, true, flags: JSON_THROW_ON_ERROR);

Antwort

HTTP-Status: 201 — Ressource erstellt.

Antwortfelder

NameTypErforderlichBeschreibungEinschränkungen
print_job_idstring (uuid)jaStabile UUID des Druckauftrags; für Statusabfragen und Support speichern.
document_idstring (uuid)jaStabile UUID, die nach einem erfolgreichen Dokument-Upload zurückgegeben wird.
document_mime_typestringjaMIME-Typ des bereitgestellten Dokuments.example: "application/pdf"
document_formatstringjaExplizites Druckformat, beispielsweise pdf oder raw.enum: pdf, raw; example: "pdf"
document_raw_languagestring | nulljaDruckerbefehlssprache der RAW-Daten, beispielsweise ZPL oder EPL.enum: tspl, zpl, cpcl, escpos; example: null
printer_idstring (uuid)jaStabile CloudPrint-UUID des Zieldruckers.
statusstringjaAktueller Ressourcen- oder Prozessstatus; verwenden Sie die Enum-Werte der jeweiligen Methode.enum: pending, reserved, printing, printed, failed, cancelled; example: "pending"
copiesintegerjaAnzahl der Exemplare, die CloudPrint beim Drucker anfordert.min: 1; max: 99; example: 1
intentstringjaGeschäftlicher Zweck des Druckauftrags für die Diagnose und sinnvolle Standardwerte.enum: document, shipping_label, product_label, invoice, packing_slip, a4_document, receipt; example: "shipping_label"
color_modestringjaGewünschter Farbmodus; default verwendet die Druckereinstellungen.enum: default, monochrome, color; example: "default"
duplex_modestringjaGewünschter ein- oder beidseitiger Druckmodus.enum: default, simplex, duplex_long_edge, duplex_short_edge; example: "default"
media_width_mmnumber | nulljaGewünschte Breite des Druckmediums oder Etiketts in Millimetern.min: 1; max: 2000; example: 58
media_height_mmnumber | nulljaGewünschte Höhe des Druckmediums oder Etiketts in Millimetern.min: 1; max: 2000; example: 40
dpiinteger | nulljaZielauflösung in Punkten pro Zoll; verwenden Sie einen vom Drucker unterstützten Wert.min: 72; max: 2400; example: 203
scale_modestringjaLegt fest, ob das Dokument seine Größe behält oder an das Zielmedium angepasst wird.enum: none, fit; example: "none"
orientationstringjaGewünschte Seitenausrichtung; default verwendet die Druckereinstellungen.enum: default, portrait, landscape; example: "default"
offset_x_mmnumberjaHorizontaler Druckversatz in Millimetern.min: -2000; max: 2000; example: 0
offset_y_mmnumberjaVertikaler Druckversatz in Millimetern.min: -2000; max: 2000; example: 0
margin_top_mmnumberjaZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
margin_right_mmnumberjaZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
margin_bottom_mmnumberjaZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
margin_left_mmnumberjaZusätzlicher Druckrand in Millimetern.min: 0; max: 2000; example: 0
created_atstring (date-time)jaVon CloudPrint erfasster ISO-8601-Zeitstempel.
reserved_atstring | null (date-time)jaVon CloudPrint erfasster ISO-8601-Zeitstempel.
started_atstring | null (date-time)jaVon CloudPrint erfasster ISO-8601-Zeitstempel.
completed_atstring | null (date-time)jaVon CloudPrint erfasster ISO-8601-Zeitstempel.
failure_reasonstring | nulljaMaschinenlesbarer oder diagnostischer Grund für einen fehlgeschlagenen Druck.

Beispielantwort

json
{
  "print_job_id": "11111111-1111-4111-8111-111111111111",
  "document_id": "11111111-1111-4111-8111-111111111111",
  "document_mime_type": "application/pdf",
  "document_format": "pdf",
  "document_raw_language": null,
  "printer_id": "11111111-1111-4111-8111-111111111111",
  "status": "pending",
  "copies": 1,
  "intent": "shipping_label",
  "color_mode": "default",
  "duplex_mode": "default",
  "media_width_mm": 58,
  "media_height_mm": 40,
  "dpi": 203,
  "scale_mode": "none",
  "orientation": "default",
  "offset_x_mm": 0,
  "offset_y_mm": 0,
  "margin_top_mm": 0,
  "margin_right_mm": 0,
  "margin_bottom_mm": 0,
  "margin_left_mm": 0,
  "created_at": "2026-08-06T12:00:00Z",
  "reserved_at": "2026-08-06T12:00:00Z",
  "started_at": "2026-08-06T12:00:00Z",
  "completed_at": "2026-08-06T12:00:00Z",
  "failure_reason": "string"
}

Fehler

HTTP-StatusBeschreibung
401Authentifizierung fehlt oder ist ungültig.
403Das Token hat nicht die erforderlichen Berechtigungen.
409Die Anfrage widerspricht dem aktuellen Zustand.
422Mindestens ein Feld ist ungültig.
429Anfragelimit überschritten; beachten Sie Retry-After.
500Interner CloudPrint-Fehler.

Hinweise zur Integration

  • Senden Sie für jede wiederholbare Anfrage einen stabilen Idempotency-Key.
  • 201 bedeutet, dass der Auftrag existiert, nicht dass Papier bedruckt wurde. Fragen Sie bis printed, failed oder cancelled ab.
  • Prüfen Sie die Optionen gegen die Druckerfunktionen.

Verwandte Dokumentation

Anleitungen zur CloudPrint-Integration, zur Verbindung des lokalen Agenten und zum zuverlässigen Betrieb von Druckabläufen.