Der PrintingTools-Service und die zugehörigen Widgets für Client-Druck in den ArcGIS-Web-APIs sind für grundlegende Druckfunktionen vorgesehen. Für Druck-Workflows, bei denen die Webkarte mithilfe erweiterter Optionen geändert oder exportiert werden soll, verwenden Sie eine Konvertierungsfunktion im Python-Modul : arcpy ConvertWebMapToMapDocument für ArcMap und ConvertWebMapToArcGISProject für ArcGIS Pro.
Das Drucken von Webkarten in ArcGIS hängt davon ab, ob die Webkarte im JSON-Format 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 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. Sie können stattdessen die JSON-Datei in ein ArcMap-Dokument (.mxd) oder ArcGIS Pro-Projekt (.aprx) konvertieren.
Konvertieren einer Webkarte in ein ArcMap-Kartendokument mit Python
Verwenden Sie zum Konvertieren einer Webkarten-JSON in ein Kartendokument (.mxd) die Funktion ConvertWebMapToMapDocument. Nachdem die Webkarte konvertiert wurde, ist ihr vollständiger Status im Kartendokument vorhanden. Das Dokument kann anschließend vor dem Drucken weiter bearbeitet oder mit ExportToPDF, ExportToPNG oder anderen Funktionen exportiert werden. 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.
Konvertieren einer Webkarte in ein ArcGIS Pro-Projekt mit Python
Verwenden Sie zum Konvertieren einer Webkarten-JSON in ein ArcGIS Pro-Projekt (.aprx) die Funktion ConvertWebMapToArcGISProject. Nachdem die Webkarte konvertiert wurde, ist ihr vollständiger Status im Projekt vorhanden. Die Webkarte kann anschließend vor dem Drucken weiter bearbeitet oder mit einer anderen Python-Funktion exportiert werden. Ähnlich wie in ArcMap können Sie die Karte vor dem Drucken auch zu einem Kartenbuch hinzufügen oder einige der Service-Layer auf der Karte durch eigene Vektor-Layer austauschen.
Ausführlichere Erläuterungen, Szenarios und Codebeispiele finden Sie unter Drucken von Webkarten mit arcpy.mp; das Thema enthält Informationen zum Verfassen von bereitgestellten Layout-Vorlagen und von Python-Skripten für eine Webkarte sowie zum Erstellen von Web-Werkzeugen und Web-Apps.
Abrufen von Skripten aus dem Web
Nachdem Sie ein arcpy-Skript für den Druckvorgang geschrieben haben, bietet ArcGIS Enterprise Geoverarbeitungsservices, mit denen sich Skripte, Werkzeuge und Modelle als Web-Services bereitstellen lassen. Hierdurch können Sie leicht über ArcGIS-Web-APIs abgerufen werden.
Sie können das Python-Skript in einem Geoverarbeitungsskriptwerkzeug kapseln. Führen Sie einen Testlauf für das Werkzeug durch, und veröffentlichen Sie das Ergebnis als ArcGIS Enterprise-Geoverarbeitungsservice.
Die einfachste Vorgehensweise beim Entwickeln eines Geoverarbeitungsskriptwerkzeugs dieses Typs 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 aus ArcGIS Web AppBuilder und die Druckaufgaben der ArcGIS Web Mapping APIs und Web Viewer den Service verwenden, ohne dass Sie benutzerdefinierten Code bereitstellen müssen.