Skip to main content

Meldeschein-Kurkarte abrufen (PDF)

Gibt die Kurkarten der angefragten Meldescheine als base64 kodiertes PDF zurück. Die Kurkarte ist druckfertig und muss i.d.R. nur noch als PDF-Datei ausgegeben und gedruckt werden.

Vermeiden Sie mehrfache Aufrufe der Schnittstelle:
Jede Anfrage "get-pdf" wird als Druckvorgang gewertet und entsprechend protokolliert.

Sie gilt somit als physikalischer Druck einer Kurkarte. Achten Sie daher bitte darauf, die Anfrage nur auszuführen, wenn ein Druck der Gästekarte umgehend folgt.

Sollte die PDF-Kurkarte mehrfach benötigt werden, speichern Sie bitte das PDF auf Ihrem System für eventuelle Verwendung ab.

Parameter

POST import/meldeschein/get-pdf/
Name Datentyp Verwendung
meta object Meta-Objekt
meldescheine array Array mit Meldeschein-IDs

Request

Folgendes Beispiel ruft die Daten von zwei Meldescheinen ab.

Request:

{
"meta": {
"objekt": 2049,
"gemeinde": 1
},
"meldescheine": [
553
]
}

Response

{
    "meta": {
        "requestId": "66f81f62-0942-11eb-bd68-c04a00212a69",
        "timestamp": "2020-10-08T10:43:56.496102",
        "user": {
            "id": 38,
            "username": "DemoV",
            "alias": "Lisa Mustermann"
        },
        "gemeinde": 1
    },
    "response": [
        {
            "id": 553,
            "encoding": "base64",
            "pdf": "JVBERi0xLjMKMSAwIG9iaHMgWyAzIDAg....<abgeschnitten>"
        }
    ]
}

PDF dekodieren und speichern

Die Rückgabe des Servers enthält die PDF-Daten als base64 kodierte string-Werte in der Response. Der'Wert ist jeweil ins response[].pdf zu finden.

Die übliche Vorgehensweise ist es, den base64 kodierten Wert als PDF-Datei zu speichern und diese dann zur weiteren Verwendung zu geben (z.B. Ausdruck Kurkarte).
Möglichkeiten Base64 Zeicheketten als Binärdateien zu speichern bieten sich in vielen Programmiersprachen.

Code-Beispiele

import base64

# ....
# Die variable Antwort des Servers ist hier in der variable "r" zu finden

for ms in r['response']:

  base64_string = ms.get('pdf')
  filename =  './Beispiel-Meldeschein-%s.pdf' % ms.get('id') # Datei als "Beispiel-Meldeschein-<id>.pdf" speichern
  fh = open(filename,'wb')   #lokale Datei im binären Modus zum schreiben öffnen / erstellen.

  decoded = base64.decodebytes(base64_string) # Base64 String binär dekodieren
  fh.write(decoded) #  dekodierte Daten in Datei schreiben
  fh.close() # Datei schliessen
  # Die Datei <filename> kann nun gedruckt werden