Tipps. Tricks.

Blog

Mapbender • 22. Juni 2021

Mapbender Druckaufträge verwalten und wiederverwenden – Einrichtung der Warteschleife

Die Open-Source-Lösung Mapbender bietet für WebGIS-Anwendungen verschiedene Druckmöglichkeiten. Unter anderem gibt es eine Druckausgabe, die auf Basis von anpassbaren Vorlagen PDF-Dateien des gewünschten Kartenausschnitts erzeugt.

Bei dieser Druckmöglichkeit sind je nach Konfiguration Ausdrucke im Quer- und Hochformat von A4 bis A0 möglich. Das Layout der Vorlagen kann dabei individuell angepasst werden.

Druckaufträge können in Mapbender seit der Version 3.0.8 durch einen eigenständigen serverseitigen Dienst abgearbeitet werden. Die Druckwarteschleife (mapbender.print.queue) wartet auf Druckaufträge, bearbeitet sie und sendet nach Fertigstellung eine Information zur Anwendung. Dies hat den Vorteil, dass bei großformatigen Ausdrucken das Arbeiten im Client nicht eingeschränkt wird. Die Druckwarteschleife ist nicht standardmäßig aktiv, sie kann allerdings mit wenigen Schritten aktiviert werden.

Mit Aktivierung der Druckwarteschleife stehen den Anwendenden folgende Funktionen zur Verfügung:

  • Anzeige von bereits erstellten PDF
  • Speichern von Druckkonfigurationen
  • Erstellen von Druckausgaben über die Konsole
  • Archivieren von Druckkonfigurationen

Aktivierung und Konfiguration der Druckwarteschleife

Die Druckwarteschleife muss in der Konfigurationsdatei parameters.yml aktiviert werden. Fügen Sie dazu die folgenden Zeile hinzu:

    mapbender.print.queueable: true  

    Optional können Sie einen Pfad definieren, unter dem die PDF-Dateien zukünftig abgelegt werden sollen. Standardmäßig werden die Dateien unter ./web/prints abgelegt. Dieses Verzeichnis muss zuvor im Dateisystem erstellt werden.

    Die Definition eines alternativen Verzeichnisses zum Speichern der PDF-Dateien erfolgt ebenfalls in der Datei parameters.yml:

      mapbender.print.queue.storage_dir: "/var/www/mapbender/web/prints"

      Neben der Konfiguration muss nun noch ein Dienst aktiviert werden, der die Druckaufträge bearbeitet. Dieser kann über den folgenden Befehl mit zusätzlichen Parametern gestartet werden:

      app/console mapbender:print:queue:next --max-jobs=0 --max-time=86100

      Dabei bedeuten

      • --max-jobs – Anzahl der Druckaufträge, die gleichzeitig abgearbeitet werden können (Standard 1, 0 unbegrenzt)
      • --max-time – maximale Zeit pro Druckauftrag. Bei Überschreitung wird der Auftrag abgebrochen (Standard 30 Sekunden, 0 unbegrenzt)

      Anzeige der erstellten Druckaufträge

      In Mapbender kann konfiguriert werden, ob die PDFs der erfolgten Druckaufträge gespeichert werden sollen. Diese Einstellung kann pro Anwendung über den Modus Warteschleife und der Angabe "privat" oder "public" aktiviert werden.

      Achtung: Der Modus Warteschleife taucht erst im Element auf, wenn in der Datei parameters.yml die Konfiguration wie oben beschrieben erweitert wurde.

      Im Element erscheinen dann zwei neue Felder – Modus und Warteschleife.

      Für die Nutzung der Warteschleife muss der Modus von Direktdruck auf Warteschleife umgestellt werden.

      Ist die Warteschleife auf "privat" gesetzt, werden dem einzelnen Benutzer nur die eigenen Druckaufträge angezeigt. So kann ganz einfach auf die bereits erstellten PDFs zugegriffen werden. Die alternative Einstellung ist "global", so dass alle Anwendenden auf alle erstellten Druckaufträge zugreifen können.

      Neben dem Link zum PDF wird das Erstellungsdatum angezeigt. Ein PDF kann erneut aufgerufen oder aus der Liste gelöscht werden.

      Nach Absenden der Druckaufträge wird der Fertigstellungsstatus angezeigt. Bei großen Ausdrucken kann die Erstellung einige Zeit in Anspruch nehmen.

      Wiederverwendung von Druckkonfigurationen

      Mapbender speichert die Informationen zu jedem Druckauftrag in der Datenbank. Druckaufträge können erneut mit aktualisierten Karteninhalten ausgeführt werden.

      In der aktuellen Mapbender-Version ist dies über die Konsole möglich. Für den Befehl wird die ID des jeweiligen Druckauftrags benötigt. Diese ID kann über die Liste der Ausdrucke in der Mapbender-Anwendung ermittelt werden.

      app/console mapbender:print:queue:rerun 1
      Starting processing of queued job #1
      PDF for queued job #1 rendered to /../mapbender/app/../web/prints/mapbender_20210401.pdf

      Druckkonfiguration ausspielen und ausführen

      Die Information zum Druckauftrag kann auch im JSON- oder YAML-Format ausgespielt und erneut für einen Ausdruck verwendet werden.

      Der folgende Befehl gibt Druckaufträge in eine Datei aus:

      app/console mapbender:print:queue:dumpjob 2 > print_configuration.json

      Dieser Befehl führt einen Druckauftrag aus einer Druck-Konfigurationsdatei heraus aus:

      app/console mapbender:print:runJob print_configuration.json /tmp/print.pdf

      Die JSON-Dateien können angepasst werden. So kann beispielsweise die Bonner Innenstadt leicht mit vier Druckaufträgen abgedeckt und ausgedruckt werden, indem das Zentrum des Kartenausschnitts verschoben wird.

      Im untenstehenden Beispiel wurde lediglich die Angabe zu x und y unter center angepasst und der Ausschnitt dadurch verschoben.

      ...
          "width": 1424,
          "height": 931,
          "center": {
              "x": 365073.5945409646,
              "y": 5623212.528926329
          },
          "extent": {
              "width": 2200,
              "height": 1660
          },
      ...

      Das Ergebnis könnte dann wie in den folgenden Druckerzeugnissen aussehen:

      Individuelle Anpassungsmöglichkeiten

      In einem Kundenprojekt der WhereGroup wurde der Druck so angepasst, dass eine Druckserie entlang einer gewünschten Trasse generiert wird. Dieser neu entwickelte Seriendruck-Plot wird im Detail im Infobrief 01 | 2021 beschrieben: "Seriendruck-Plot – eine neue Mapbender-Funktion bei der Gasnetz Hamburg GmbH".

      Weitergehende Informationen

      Die Dokumentation zur Konfiguration der Druckwarteschleife findet sich unter:
      https://doc.mapbender.org/de/functions/export/printclient.html#warteschleifendruck
      https://doc.mapbender.org/en/customization/commands.html#print

       

      Weitere Beiträge, die Dich interessieren könnten:

      Astrid Emde

      Astrid Emde befasst sich seit vielen Jahren mit Geodaten und hat zahlreiche GIS-Projekte umgesetzt. Sie ist langjähriges Mitglied des Bonner WhereGroup-Teams und Dozentin der FOSS Academy. Beruflich und privat engagiert sie sich im FOSSGIS-Bereich und ist seit einigen Jahren im Vorstand der OSGeo aktiv.

      Artikel teilen: