Der PrintingTools-Service und die zugehörigen Widgets für Client-Druck in den ArcGIS-Web-APIs sind für grundlegende Druckfunktionen vorgesehen. Zum Drucken von Arbeitsabläufen, bei denen die Webkarte mithilfe erweiterter Optionen geändert oder exportiert werden soll, verwenden Sie die Funktion ConvertWebMapToMapDocument im Python-Modul arcpy.mapping.
Konvertieren einer Webkarte in ein Kartendokument mit Python
Das Drucken von Webkarten in ArcGIS hängt davon ab, ob die Webkarte im Format JSON bzw. JavaScript Object Notation dargestellt werden kann. Esri hat die ExportWebMap-Spezifikation erstellt, anhand derer definiert wird, wie eine Webkarte im JSON-Format mit Ausdehnungs- und Layer-Informationen zum Drucken strukturiert werden kann. Die ArcGIS-Web-APIs können die aktuelle Webkarte lesen und die JSON-Datei für Sie erstellen. In einem einfachen Druckszenario liest der PrintingTools-Service von ArcGIS for Server die JSON-Datei und gibt ein Kartenbild zurück, das gedruckt werden kann.
In erweiterten Druckszenarien muss die JSON-Datei der Webkarte nicht an den PrintingTools-Service gesendet werden. Stattdessen können Sie die JSON-Datei in eine MXD-Datei konvertieren. Verwenden Sie dazu die Python-Funktion "arcpy.mapping.ConvertWebMapToMapDocument". Sie können die resultierende MXD in anderen arcpy.mapping-Funktionen wie ExportToPDF oder ExportToPNG verwenden, um die Karten für den Druckvorgang vorzubereiten. Sie können die Karte vor dem Drucken sogar einem Kartenbuch hinzufügen oder einige der Service-Layer auf der Karte durch eigene Vektor-Layer austauschen. Diese Techniken werden im Referenzthema ConvertWebMapToMapDocument beschrieben.
Es gibt außerdem einige Lernprogramme, die den gesamten erweiterten Arbeitsablauf für Export- und Druckvorgänge veranschaulichen. In diesen Lernprogrammen wird erläutert, wie die Kartendokumente der bereitgestellten Vorlage, das Python-Skript, der Geoverarbeitungs-Service und die Webanwendung erstellt werden:
Abrufen von Skripten aus dem Web
Wie verwenden Sie ein arcpy.mapping-Skript in Ihrer Webanwendung, nachdem Sie es zum Drucken geschrieben haben? ArcGIS for Server bietet Geoverarbeitungs-Services, die Ihnen die Möglichkeit bieten, Skripte, Werkzeuge und Modelle als Web-Services bereitzustellen. Hierdurch können Sie leicht über ArcGIS-Web-APIs abgerufen werden.
Nachdem Sie ein Python-Skript geschrieben haben, das die Karte für den Druck vorbereitet, können Sie es in ein Geoverarbeitungsskriptwerkzeug einkapseln. Führen Sie einen Testlauf für das Werkzeug durch und veröffentlichen Sie das Ergebnis als ArcGIS for Server-Geoverarbeitungs-Service.
Die einfachste Vorgehensweise beim Entwickeln dieses Typs von Geoverarbeitungsskriptwerkzeug besteht darin, sicherzustellen, dass es die gleichen Parameter wie der Standard-PrintingTools-Service oder eine Teilmenge dieses Service bereitstellt. Der Eingabe-JSON-Parameter ist der erforderliche Mindestparameter. Wenn Sie den Service auf diese Weise entwerfen, können die Druck-Widgets der ArcGIS Web Mapping APIs und Web Viewer den Service verwenden, ohne dass Sie benutzerdefinierten Code bereitstellen müssen.