0x
005815
2026-06-01

保存来自在线荷载查询工具应用程序编程接口的PDF文件

如何通过应用程序编程接口保存PDF或地图截图?


回复:

应用程序编程接口将 PDF 报告和地图截图作为 Base64 编码的文本返回。这是一种通过基于文本的接口传输二进制文件(如图像或 PDF)的常用方法。随后必须对该文件进行解码并保存。

保存 PDF 报告

以下示例生成一份完整的荷载分区报告 PDF 并将其保存在本地:


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"已保存: {pdf_result.name}")

带进度显示的 PDF 生成

或者,您可以实时跟踪服务器端 PDF 生成的进度。当您将生成功能集成到带有用户界面的自有应用程序中时,这尤其有用:


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

该函数在后台使用 WebSocket 连接 (GraphQL Subscription),并逐步提供状态消息,直到最后一步中包含作为 Base64 编码字符串的完整 PDF。建议的文件名由服务器提供。

保存地图截图

应用程序编程接口可以将荷载分区图的地图区域生成为栅格图形。其结果与网页界面中的显示相对应,适用于集成到报告或自有应用程序中。可以通过参数 zoom、screenshot_type (PNG 或 JPEG) 和 screenshot_quality 来控制输出。


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("雪荷载分区_慕尼黑.png", "wb") as f:
    f.write(base64.b64decode(screenshot.screenshot))

print("已保存: 雪荷载分区_慕尼黑.png")

参数 zoom 控制地图区域的缩放级别。较低的值(例如 4)显示国家概览,较高的值(例如 10)显示位置周围的详细区域。对于 JPEG,还可以通过 screenshot_quality (1–100) 设置图像质量。

什么是 Base64?

Base64 将二进制数据(如 PDF 或图像)转换为纯文本字符串,该字符串可以通过基于文本的接口(如 JSON)轻松传输。接收方将该字符串解码回原始文件。在 Python 中,标准库用两行代码即可完成此操作:


import base64
datei_bytes = base64.b64decode(base64_string)

生成的文件与网页界面的导出文件相对应,可以直接用于您的项目文档。



;