Impression dans les applications Web

Imprimer une carte à partir d'une application Web présente certaines difficultés. En voici un aperçu : fusionner plusieurs services, conserver les paramètres de visibilité de la couche, ajouter des éléments à la mise en page ou encore afficher des graphiques sur la carte. Pour vous faciliter la tâche, ArcGIS Server s'accompagne d'un service de géotraitement appelé PrintingTools. Lorsque vous développez vos applications Web, vous pouvez accéder au service PrintingTools pour obtenir, en retour, une image à imprimer de haute qualité cartographique. Dans le cas d'une impression avancée, vous pouvez utiliser un script Python afin de convertir la carte Web en document ArcMap (MXD), puis exporter ce document MXD vers divers formats en vue de l'impression.

Service PrintingTools

PrintingTools est un service préconfiguré disponible dans le dossier Utilitaires. Il est arrêté par défaut. Vous devez utiliser ArcGIS Desktop ou le gestionnaire ArcGIS Server pour démarrer le service si vous souhaitez prendre en charge les workflows d'impression.

Les API Web ArcGIS proposent des widgets capables de communiquer avec le service PrintingTools afin d'obtenir une carte imprimable. Il vous appartient de fournir l'URL du service PrintingTools et les widgets se chargent du reste !

Si vous devez accéder au service PrintingTools en dehors des API Web ou si vous souhaitez exécuter Exporter la carte Web, son outil sous-jacent, à partir d'ArcGIS Desktop ou d'un script Python, vous devez fournir une définition JSON (JavaScript Object Notation) de l'état actuel de la carte, en vous conformant à la spécification ExportWebMap d'Esri. Il s'agit d'un workflow avancé dont vous n'avez pas besoin si vous utilisez les API Web.

PrintingTools s'accompagne d'un ensemble prédéfini de mises en page parmi lesquelles vous pouvez faire votre choix. Si vous souhaitez utiliser vos propres mises en page, vous pouvez utiliser votre service d'impression de cartes Web semblable à PrintingTools et le faire pointer vers votre dossier de mises en page. Pour plus d'informations à ce sujet, reportez-vous aux rubriques Utilisation de vos propres mises en page pour l'impression et Didacticiel : Publication des services supplémentaires pour l'impression.

Lorsque votre service de carte est mis en cache, le service PrintingTools peut utiliser une résolution qui est trop faible (par exemple, 96 PPP) pour les impressions grand format ou haute qualité. Pour imprimer à des résolutions plus élevées, il est recommandé d'activer les couches dynamiques sur votre service de carte mis en cache. Ceci permet au service d'impression d'obtenir des images cartographiques (via une requête d'exportation de la carte) à la résolution souhaitée (par exemple, 300 PPP) au lieu des tuiles de faible résolution. Pour en savoir plus, reportez-vous à la rubrique A propos des couches dynamiques.

Impression avancée à l'aide de Python

Dans le cas des scénarios d'impression avancés, vous ne devez pas utiliser PrintingTools. Utilisez plutôt la fonction ConvertWebMapToMapDocument de module Python arcpy.mapping inclus dans ArcGIS. Une fois que le document est converti, la carte Web complète est intégrée au document ArcMap. Le document ArcMap peut ensuite être modifié davantage avant d'être imprimé ou exporté dans un format connu, par exemple au format PDF.

La fonction ConvertWebMapToMapDocument est généralement utilisée pour remplacer les couches de service par des données vectorielles locales, créer des atlas, contrôler l'aspect de la légende et exporter différents formats à l'aide des options avancées.

Pour que votre script Python soit disponible pour une application Web, vous pouvez le présenter par le biais d'un service de géotraitement ArcGIS Server. Pour plus d'informations, reportez-vous à la rubrique Impression avancée de cartes Web.

5/10/2014