0x
005815
01.06.2026

Enregistrer le PDF via l’API de l’outil Géo-Zone

Comment enregistrer le PDF ou la capture d’écran de la carte depuis l’API ?


Réponse:

L’API renvoie les rapports PDF et les captures d’écran de la carte sous forme de texte encodé en Base64. C’est une méthode courante pour transférer des fichiers binaires (comme des images ou des PDF) via une interface textuelle. Le fichier doit ensuite être décodé et enregistré.

Enregistrer le rapport PDF

L’exemple suivant génère un rapport complet de zones de charge au format PDF et l’enregistre localement :


import base64
from dlubal.api.geo_zone_tool import GeoZoneTool, Language

gzt = GeoZoneTool(token="")

pdf_result = gzt.get_load_zone_pdf_result(
    address="Munich, Germany",
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
    language=Language.EN,
)

if pdf_result:
    with open(pdf_result.name, "wb") as f:
        f.write(base64.b64decode(pdf_result.pdf))
    print(f"Gespeichert: {pdf_result.name}")

Génération de PDF avec indicateur de progression

Vous pouvez également suivre en temps réel la progression de la génération de PDF côté serveur. Cela est particulièrement utile lorsque vous intégrez la génération dans votre propre application avec interface utilisateur :


for progress in gzt.get_load_zone_pdf(
    address="Munich, Germany",
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
    language=Language.EN,
):
    print(f"{progress.current_step}/{progress.steps} – {progress.message}")

    if progress.pdf_result:
        with open(progress.pdf_result.name, "wb") as f:
            f.write(base64.b64decode(progress.pdf_result.pdf))

La fonction utilise en arrière-plan une connexion WebSocket (GraphQL Subscription) et fournit des messages de statut étape par étape, jusqu’à ce que le PDF final soit inclus sous forme de chaîne encodée en Base64 dans la dernière étape. Le nom de fichier suggéré est fourni par le serveur.

Enregistrer la capture d’écran de la carte

L’API peut générer une section de la carte des zones de charge sous forme d’image matricielle. Le résultat correspond à la représentation dans l’interface web et convient à l’intégration dans des rapports ou vos propres applications. Les paramètres zoom, screenshot_type (PNG ou JPEG) et screenshot_quality permettent de contrôler la sortie.


import base64
from dlubal.api import geo_zone_tool
from dlubal.api.geo_zone_tool import GeoZoneTool, Language

gzt = GeoZoneTool(token="")

screenshot = gzt.get_load_zone_screenshot(
    address="Munich, Germany",
    load_zone_type=geo_zone_tool.LoadZoneType.SNOW,
    standard="EN 1991-1-3",
    annex="DIN EN 1991-1-3",
    layer_id=1,
    zoom=6,
    language=Language.DE,
    screenshot_type=geo_zone_tool.ScreenshotType.PNG,
)

with open("schneelastzone_muenchen.png", "wb") as f:
    f.write(base64.b64decode(screenshot.screenshot))

print("Gespeichert: schneelastzone_muenchen.png")

Le paramètre zoom contrôle le niveau d’agrandissement de la section de la carte. Des valeurs basses (par ex. 4) montrent un aperçu national, des valeurs plus élevées (par ex. 10) une section détaillée autour du site. Pour le JPEG, la qualité d’image peut en outre être définie via screenshot_quality (1–100).

Qu’est-ce que Base64 ?

Base64 convertit des données binaires (comme un PDF ou une image) en une chaîne de texte pure, qui peut être transférée sans problème via une interface textuelle comme JSON. Le destinataire décode la chaîne pour retrouver le fichier original. En Python, la bibliothèque standard fait cela en deux lignes :


import base64
datei_bytes = base64.b64decode(base64_string)

Les fichiers générés correspondent aux exports de l’interface web et peuvent être directement intégrés dans votre documentation de projet.



;