Es gibt mehrere Möglichkeiten, ein druckbares Dokument aus einer Webanwendung zu erstellen. ArcGIS Server enthält standardmäßig einen Geoverarbeitungsservice namens PrintingTools. Webanwendungen rufen den PrintingTools-Service auf, und erhalten ein druckbares Dokument. Sie können auch einen benutzerdefinierten Druck-Service mit Ihren eigenen Layouts statt mit denen des Standard-PrintingTools-Service erstellen. Für fortgeschrittenes Drucken können Sie ein Python-Skript verwenden, um die Webkarte in ein ArcMap-Dokument (MXD) zu konvertieren und die MXD-Datei für das Drucken in verschiedene Formate zu exportieren.
Die Druckfunktion kann für Portal for ArcGIS, Webanwendungsvorlagen, Web AppBuilder for ArcGIS und für Anwendungen konfiguriert werden, die mit ArcGIS-Web-APIs erstellt wurden. Weitere Informationen zum Bereitstellen von Druckfunktionen für Ihr Portal und all Ihre Anwendungen, die mit Web AppBuilder oder Web-App-Vorlagen erstellt wurden, finden Sie unter Konfigurieren des Portals zum Drucken von Karten.
Der PrintingTools-Service
PrintingTools ist ein vorkonfigurierter Service im Ordner "Dienstprogramme", der ein druckbares Dokument erstellt, indem eines von verschiedenen vordefinierten Karten-Layouts verwendet wird. Dazu gehören grundlegende Layouts wie 8,5 x 11 Zoll, 11 x 17 Zoll, Papiergröße A3 und A4 im Hoch- und Querformat. Jedes Layout enthält einen Nordpfeil, eine Maßstabsleiste sowie ein Maßstabsverhältnis, eine Legende, ein Datum und einen Titel. Die unterstützten Ausgabeformate aus dem PrintingTools-Service sind PDF (georeferenziert), PNG32, PNG8, JPG, GIF, EPS, SVG und SVGZ.
Der PrintingTools-Service wird standardmäßig gestoppt. Sie müssen ArcGIS Desktop oder ArcGIS Server Manager verwenden, um den Service zu starten, wenn Sie Druck-Workflows unterstützen möchten. Nachdem der PrintingTools-Service gestartet wurde, können Sie mit einer URL im folgenden Format darauf zugreifen: https://webadaptorhost.domain.com/webadaptorname/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task.
Die ArcGIS-Web-APIs bieten Widgets, die mit dem PrintingTools-Service kommunizieren können, um eine druckfähige Karte zu erhalten. Sie stellen die URL des PrintingTools-Service bereit, und die Widgets erledigen die restliche Arbeit. Weitere Informationen zum Verwenden des PrintingTools-Service mit Ihrer Portal for ArcGIS-Bereitstellung finden Sie unter Konfigurieren des Portals zum Drucken von Karten.
Wenn der Kartenservice gecacht wird, könnte der PrintingTools-Service eine Auflösung verwenden, die für große Formate oder eine hohe Druckqualität viel zu niedrig ist (z. B. 96 dpi). Wenn Sie im gecachten Kartenservice mit höheren Auflösungen drucken möchten, empfiehlt sich die Aktivierung dynamischer Layer. Auf diese Weise kann der Druckservice (über eine Anforderung zum Kartenexport) Kartenbilder in der gewünschten Auflösung (z. B. 300 dpi) statt Kacheln mit niedrigerer Auflösung abrufen. Weitere Informationen finden Sie unter Dynamische Layer.
Ab Version 10.4 steht im PrintingTools-Service ein neuer Task zur Verfügung: Layout-Vorlageninformationen abrufen. Mit diesem Task werden die Größe der Layout-Seite und die Größe des aktiven Datenrahmens abgerufen. Außerdem zeigt er an, ob die folgenden Layout-Elemente verfügbar sind:
- Legende
- Titeltext
- Copyright-Text
- Autortext
- Benutzerdefinierte Textelemente
Außerdem können Sie diesen Task zu benutzerdefinierten Druck-Services hinzufügen. Anweisungen finden Sie unter Lernprogramm: Veröffentlichen zusätzlicher Services zum Drucken.
Benutzerdefinierte Druckservices
Wenn Sie Ihre eigenen Kartenlayouts verwenden möchten, können Sie Ihren eigenen Service für das Drucken von Webkarten ähnlich wie PrintingTools veröffentlichen. Sie können diesen Service konfigurieren, um Ihren eigenen Ordner mit ArcMap-Dokumenten (MXDs) zu referenzieren, die Sie mit unterschiedlichen Karten-Layouts vorbereitet haben.
Anweisungen zum Veröffentlichen Ihres eigenen Service für das Drucken aus Webanwendungen (und dessen Referenzierung auf den eigenen Layout-Ordner) finden Sie unter Lernprogramm: Veröffentlichen zusätzlicher Services zum Drucken. Im Lernprogramm wird auch erläutert, wie Sie vorgehen, wenn Sie sich später dafür entscheiden, Ihre Layouts zu aktualisieren. Je nachdem, ob Sie Ihren Layout-Ordner vor dem Veröffentlichen beim Server registriert haben oder nicht, ist der Aktualisierungsansatz unterschiedlich. Das Lernprogramm beinhaltet Anweisungen für beide Szenarien.
Beachten Sie, dass das Lernprogramm zum Veröffentlichen und Verwenden von benutzerdefinierten Druck-Services in Portal for ArcGIS weitere Aspekte umfasst. Der benutzerdefinierte Druck-Service muss als synchroner Geoverarbeitungsservice veröffentlicht werden und die URL für den Druck-Service muss HTTPS für das Portal verwenden, um es als Druck-Service des Portals zu akzeptieren. Weitere Informationen zum Verwenden eines benutzerdefinierten Druck-Service mit Ihrer Portal for ArcGIS-Bereitstellung finden Sie unter Konfigurieren des Portals zum Drucken von Karten.
Benutzerdefinierte Druck-Services können Layouts drucken, die mehrere Datenrahmen verwenden. Der Service ersetzt nur die Karte im aktiven Datenrahmen. Wenn zwischen den Datenrahmen jedoch Beziehungen bestehen, wie beispielsweise ein Ausdehnungsrechteck, wird diese Beziehung vom Druck-Service berücksichtigt. Sie verfügen beispielsweise über ein Layout mit zwei Datenrahmen: eine Hauptkarte und eine Übersichtskarte. Die Übersichtskarte beinhaltet ein Ausdehnungsrechteck, das die aktuelle Ausdehnung der Hauptkarte anzeigt. Bevor Sie dieses Layout mit Ihrem benutzerdefinierten Druck-Service verwenden, müssen Sie sicherstellen, dass der Datenrahmen der Hauptkarte der aktive Datenrahmen ist. Wenn ein Webbenutzer eine Karte mit Ihrem Layout anfordert, zeigt die Hauptkarte die aktuelle Webkartenansicht an und das Ausdehnungsrechteck der Übersichtskarte zeigt wie erwartet die Ausdehnung der Hauptkarte an.
Legenden
Die Legenden in der gedruckten Ausgabe verhalten sich ähnlich, und zwar unabhängig davon, ob Sie PrintingTools oder einen benutzerdefinierten Druck-Service verwenden. Beim Drucken von Feature-Services enthält die Legende im gedruckten Dokument lediglich die Legendeneinträge für die Features, die sich in der Kartenausdehnung befinden, wohingegen Legenden für andere Service-Typen alle Legendeneinträge für die Features unabhängig von der Kartenausdehnung enthalten.
Erweitertes Drucken mithilfe von Python
Für erweiterte Druckszenarien, zum Beispiel Aufträge, die große Papiergrößen verwenden, verwenden Sie PrintingTools überhaupt nicht. Stattdessen können Sie die Funktion "ConvertWebMapToMapDocument" im Python-Modul "arcpy.mapping" verwenden, das in ArcGIS erhalten ist. Nachdem das Dokument konvertiert wurde, ist die vollständige Webkarte im Kartendokument vorhanden. Das Kartendokument kann dann weiter geändert werden, bevor es schließlich gedruckt oder in ein allgemeines Format wie PDF exportiert wird.
Die Funktion "ConvertWebMapToMapDocument" wird häufig zur Ersetzung von Service-Layers durch lokale Vektordaten, Erstellung von Kartensammlungen, Steuerung des Aussehens der Legende oder für den Export unterschiedlicher Formate mithilfe erweiterter Optionen verwendet.
Um Ihr Python-Skript für eine Webanwendung verfügbar zu machen, können Sie das Skript über einen ArcGIS Server-Geoverarbeitungsservice bereitstellen. Weitere Informationen finden Sie unter Erweiterte Druckfunktionen für Webkarten.