Skip to main content
Skip table of contents

Druckdaten-Generierung

Nach dem Tutorial Draft erzeugen (s. Editor-Aufruf) wird nun beschrieben wie eine PDF-Druckdatei eines bestimmten Entwurfs von einem bestimmten Benutzer erzeugt werden kann.

Um im letzten Schritt auf die Druckdatei zugreifen zu können muss die Benutzerkennung bekannt sein.

Folgende Schritte sind durchzuführen:

1. Druckdaten-Generierung planen

Zuerst rufen wir die Methode api-ext/pdf-processing auf und fügen einen Authorisierungs-Header hinzu.

CODE
POST /api-ext/pdf-processing HTTP/1.1
Host: testshop.demo.printformer.net
Accept: application/json
Authorization: Bearer 04HjIzShfiAAD7SB32ViD2DeRlEyHd6E
Content-Type: application/json
Content-Length: 150

{
  "draftIds": [
    "sxoejeaxkplunbbvwgsc5ychkqqeo3y1"
  ],
  "stateChangedNotifyUrl": "https://webhook.site/195f6e9e-adff-441a-bc09-9e727698b685"
}

Key

Value (Wert)

draftIds

Hier kann ein JSON-Array mit DraftIds hinzugefügt werden, für die eine Druckdatei erzeugt werden soll.

stateChangedNotifyUrl

Hier kann eine URL eingestellt werden, an die der printformer melden kann, dass der Auftrag verarbeitet wurde.

Diese Beispieldaten zeigen den Aufbau dieser Benachrichtigung. Die draftStates enthalten jede draftId aus dem Batch-Job. Der Status zeigt ob die Druckdatengenerierung erfolgreich (processed), fehlgeschlagen (failed), in Bearbeitung (in-process) oder ausstehend (pending) war.

CODE
{
    "processingId": "2fbda9ffcaf21098f78d425072945563",
    "draftStates": [
        {
            "draftId": "a275jii66mz1lbrh9dlg66enovuht01c",
            "state": "failed",
            "message": "'Title' document info field required in PDF/X"
        },
        {
            "draftId": "dylstgbyyvrmspdgqcud7tgmftrpmax0",
            "state": "processed",
            "message": null
        },
        {
            "draftId": "hlmhgh4udulx3icesnxdr988webpd3c6",
            "state": "in-process",
            "message": null
        },
        {
            "draftId": "ck6ccfkilxcxfh2wrw0dsi5caoexw1ov",
            "state": "pending",
            "message": "'Title' document info field required in PDF/X"
        },
        {
            "draftId": "t0dqj5hz1ldk2uwenpcylgz78fvz1v2x",
            "state": "failed",
            "message": "'Title' document info field required in PDF/X"
        }
    ]
}

Im Response erhalten wir die processingId für diesen Job. Diese ID ist wichtig, um den Status des Batch-Jobs (Stapelverarbeitung) in den nächsten Schritten zu überprüfen.

CODE
{
    "processingId": "1e0cbbef8b860f779a493c20414026d3"
}

2. Status für den Draft-batch anhand der Verarbeitungs-ID prüfen

Wenn man nicht über die NotifyUrl über den Batch-Job informiert werden möchte, kann der Status auch manuell mit der API-Methode "api-ext/pdf-processing/{processingId}" geprüft werden. Diese API-Methode muss über GET aufgerufen werden.

CODE
GET /api-ext/pdf-processing/1e0cbbef8b860f779a493c20414026d3 HTTP/1.1
Host: testshop.demo.printformer.net
Accept: application/json
Authorization: Bearer 04HjIzShfiAAD7SB32ViD2DeRlEyHd6E

Als Response erhalten wir die Rückmeldung ob die Druckdatei generiert wurde

CODE
{
    "processingId": "1e0cbbef8b860f779a493c20414026d3",
    "draftStates": [
        {
            "draftId": "sxoejeaxkplunbbvwgsc5ychkqqeo3y1",
            "state": "processed",
            "message": null
        }
    ]
}

3. Druckdatei abrufen

Nach Erhalt der Information, dass der Draft bearbeitet wurde, kann die Druckdatei abgerufen werden. Hierfür kann die Methode "api-ext/files/draft/{draft}/print" verwendet werden.

JWT Token generieren

Um sich als Besitzer eines Drafts anzumelden muss ein JWT Token generiert werden.

Mittels jwt.io kann dieser überprüft werden, im nächsten Schritt wird damit die Editor-URL entschlüsselt, verifiziert und generiert.

Folgende Informationen werden dafür benötigt:

Attribut

Position

Beispiel Value

Beschreibung

jti

Header

ONVS6545F7ABCDE

Random String, der nur einmal verwendet werden kann

client

Payload

vD3rU3Qw

printformer API Zugangsdaten

user

Payload

YNrcxoTy

Benutzer mit dem der Draft erstellt wurde

iat

Payload

1516239022

Zeitstempel

Danach muss die JWT Signatur mit dem printformer API Key verifiziert werden.

Jetzt können die Druckdaten unter folgender URL abgerufen werden:

{printformer URL}/api-ext/files/draft/{draftId}/print?jwt={JWT Token}

Beispiel-URL:

CODE
https://testshop.demo.printformer.net/api-ext/files/draft/b0ad067db9a58dca4fd90eb291246e78/print?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImp0aSI6Ik9OVlM2NTQ1RjdBQkNEWiJ9.eyJjbGllbnQiOiJ2RDNyVTNRdyIsInVzZXIiOiJZTnJjeG9UeSIsImlhdCI6MTUxNjIzOTAyMn0.Px5tC7eTH_jRvhpKMANc9lkFzV7xOfEzLwtJbK-HY9o

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.