Aperçu
Ce widget apporte l’impression cartographique à la manière d’ArcGIS Pro dans ArcGIS Experience Builder, sans nécessiter de service d’impression. Vous partagez une mise en page d’ArcGIS Pro sous forme de fichier (.pagx), vous l’importez une fois dans les paramètres du widget, puis le widget recrée cette page dans le navigateur à partir de votre carte en temps réel : cadre cartographique, titre et texte, flèche du nord, barre d’échelle, légende, images et lignes.
https://github.com/brianmcleer/print-advanced-widget
Remarque : importez un fichier de mise en page ArcGIS Pro (.pagx) dans les paramètres du widget pour définir la page. Vous pouvez aussi utiliser un service d’impression Esri facultatif si vous préférez un service ExportWebMap côté serveur.
Que peut faire ce widget ?
- Reproduit dans le navigateur une mise en page .pagx d’ArcGIS Pro (cadre cartographique, texte, lignes, flèche du nord, barre d’échelle, images, légende), calibrée à partir de rendus réels de Pro.
- Exporte en PDF et SVG vectoriels, ainsi qu’en PNG32, PNG8, JPG, GIF, TIFF et EPS. Aucun service d’impression requis.
- Option facultative de service d’impression Esri (URL ExportWebMap) pour les mises en page côté serveur, qui ajoute également le format AIX.
- Aperçu de la zone d’impression affiché sur la carte : voyez le résultat avant l’exportation. Conservez l’échelle actuelle, conservez l’étendue actuelle, définissez une échelle fixe ou choisissez-en une dans une liste, avec une option de verrouillage.
- 12 styles de flèche du nord et 9 styles de barre d’échelle présentés sous forme de vignettes, ainsi qu’une option par défaut de la mise en page.
- Système de coordonnées de sortie (WKID) permettant d’imprimer dans une projection différente de celle de la carte.
- Jetons d’auteur, de droits d’auteur et d’attribution. Exportation de la légende uniquement ou de la carte uniquement. Polices personnalisées par URL, y compris l’importation de Google Fonts.
- Liste des exportations récentes, et importation et exportation XML de toute la configuration.
- Contrôle administrateur des paramètres par défaut, des formats proposés et des commandes d’exécution visibles par les utilisateurs finaux.
Journal des modifications :
15/10/2026 :
La liste des exportations a été remaniée. Chaque fichier terminé apparaît désormais avec l’état Prêt, l’heure, le nombre de pages et la taille. Cliquez sur le nom pour l’ouvrir dans un nouvel onglet, ou sur Enregistrer pour le télécharger à nouveau. Les détails techniques et les notes éventuelles sont accessibles via un bouton Détails, afin que la liste reste claire. Les fichiers restent dans la liste tant que l’application est ouverte, même si vous fermez le panneau Impression.
12/10/2026 : Le widget suit désormais la langue de l’application (?locale=, le sélecteur de langue, le profil ArcGIS ou le navigateur) dans 39 langues, guide d’aide inclus.
Vous avez créé vos propres widgets personnalisés ? Le même outil gratuit, exb-i18n-kit, peut les traduire en une seule commande : localize. Voici comment il traduit chaque expression :
- Esri d’abord. Il récupère les traductions déjà présentes dans votre installation d’Experience Builder. Ainsi, une expression comme « Zoom to » reprend la formulation utilisée par les widgets Esri.
- Termes standard. Les noms d’unités comme pieds et acres proviennent d’Unicode CLDR, les mêmes données que celles utilisées par les navigateurs.
- Mémoire de traduction partagée. Le reste provient d’un dictionnaire partagé élaboré avec LibreTranslate, un traducteur open source, ainsi que les modèles Opus-MT de Helsinki-NLP pour le bosniaque, le croate et le serbe. L’outil fonctionne gratuitement sur GitHub : vous n’avez donc besoin ni d’une clé API ni d’un compte.
- Intégration. Il repère également les textes anglais codés en dur en dehors du fichier de traduction du widget, par exemple un paramètre par défaut ou un guide d’aide, et les relie pour qu’ils soient eux aussi traduits.
Les corrections faites à la main restent prioritaires sur les traductions automatiques et ne sont jamais écrasées. Certaines traductions sont générées automatiquement : si vous en repérez une qui ne convient pas, répondez ici en proposant une meilleure formulation.
24/09/2026 :
- L’aperçu de la page se trouve maintenant sous le titre de la carte. Le panneau se lit donc de haut en bas : choisissez une mise en page, saisissez un titre, prévisualisez la page, puis exportez.
- Les options avancées sont réparties en six cartes : Zone d’impression, Série cartographique, Sur la carte, Texte de la page, Style et Sortie. Chaque carte s’ouvre et se ferme en cliquant sur son en-tête, mémorise votre choix et affiche un résumé sur une ligne lorsqu’elle est fermée, par exemple « PDF, 300 DPI » ou « Légende, Grille ».
- La série cartographique se commande par un simple interrupteur et sélectionne automatiquement le format PDF.
- Les paramètres suivent le même ordre : la configuration d’un administrateur correspond ainsi à ce que voient les utilisateurs. Les administrateurs peuvent également choisir quelles cartes sont ouvertes par défaut.
23/09/2026 :
- GeoPDF. Ouvrez le PDF dans Avenza ou Field Maps pour afficher le point bleu. Fonctionne également avec GeoTIFF, les fichiers world et KMZ.
- Couches PDF. Activez ou désactivez la carte, la grille, la légende et le texte dans Acrobat.
- Aperçu de la page en direct. Voyez toute la page imprimée pendant que vous effectuez un déplacement panoramique.
- Couches vectorielles. Des lignes nettes et des étiquettes consultables plutôt que des pixels (expérimental).
- Pages pilotées par les données. Une page par parcelle, parc ou projet. Fonctionne avec les couches de groupe et les filtres, et ajoute le nom de l’entité au titre.
- Progression de la série cartographique. Affiche « Page 3 sur 12 » et le temps restant, avec un bouton Annuler.
- Limites de pages. L’exécution se fait dans le navigateur : les administrateurs peuvent donc définir un avertissement et un nombre maximal de pages.
- Grille : modifiez la couleur des lignes et des polices des grilles dans le widget et dans les paramètres par défaut.
09/09/2026 :
- Les entités sélectionnées sont désormais imprimées. Si des parcelles ou d’autres entités sont sélectionnées sur la carte, elles sont imprimées avec un contour cyan par-dessus la carte. Le widget capture la carte dans une vue hors écran qui partage les couches de votre carte, mais pas sa vue. La surbrillance de sélection est associée à cette vue, ce qui expliquait pourquoi une parcelle sélectionnée n’apparaissait pas sur une impression où toutes les autres entités graphiques étaient présentes. La sélection est maintenant dessinée sur la page sous forme vectorielle : le rendu est donc net en PDF et en SVG, sans aucune modification de votre carte en direct. Le panneau d’exportation comporte une option Entités sélectionnées, activée par défaut, ainsi qu’un paramètre par défaut correspondant dans les paramètres du widget.
- Guide d’aide intégré au widget. Un bouton Aide dans l’en-tête du widget ouvre un guide court et consultable, rédigé dans un langage simple : trois étapes pour commencer, l’explication de chaque option, le type de fichier à choisir et les vérifications à effectuer en cas de problème. Il ne présente que les fonctionnalités activées dans votre application, pour éviter que les utilisateurs lisent des explications sur une légende ou une série cartographique que leur mise en page n’utilise pas.
04/09/2026 :
Le widget n’est plus en version bêta : il est maintenant déployé sur mes sites. Nouvelles fonctionnalités :
- Ajout de l’exportation Google Earth (KMZ) pour les exportations de la carte seule
- Ajout de la sortie raster géoréférencée : véritable GeoTIFF pour TIFF, fichier world et
.prj pour PNG, JPG et GIF - La prise en charge des systèmes de coordonnées est désormais universelle plutôt que limitée à une liste fixe, couvrant la sortie
.prj, les clés GeoTIFF et les jetons de nom de système de coordonnées - Ajout de la prise en charge complète du texte dynamique d’ArcGIS Pro, notamment l’heure, les crédits des couches de service, les propriétés de référence spatiale, les coordonnées du cadre cartographique et les jetons de page de série cartographique
- Ajout du filtrage de légende dépendant de l’échelle
- Les impressions de séries cartographiques incluent le panneau de légende sur chaque page et régénèrent la grille en fonction du cadre effectif
- L’importation et l’exportation XML des paramètres incluent désormais les valeurs par défaut de la grille, de la carte d’ensemble et de la légende
- Correction de la taille des symboles, du texte et des lignes à haute résolution (DPI)
- Correction de l’impression des images qui ne respectait pas l’échelle à grande échelle
- Correction des échantillons de légende manquants pour les groupes de services cartographiques
- Correction du placement de la légende en bas à gauche et en bas à droite
- Correction de « Appliquer à toutes les mises en page »
- Correction de l’actualisation de l’option de légende lors d’un changement de mise en page
- La légende respecte désormais le nombre de colonnes et la visibilité du titre du fichier
.pagx
12/08/2026 :
Correction de l’affichage des éléments de légende sous forme de carrés gris dans Experience Builder 1.21. La nouvelle version d’ArcGIS Maps SDK affiche le widget Légende derrière le Shadow DOM, ce qui masquait les échantillons de symboles lors de la récupération pour l’impression. L’extraction des échantillons traverse désormais le Shadow DOM, prend en charge le nouveau composant arcgis-legend et utilise automatiquement les symboles des moteurs de rendu des couches si l’extraction s’avère incomplète. Aucune modification de vos cartes ou mises en page n’est nécessaire. Merci à @ncramer11 pour le signalement sur GitHub.
23/07/2026 :
Mise à jour du widget Sélecteur de cartes pour Experience Builder 1.21 afin de corriger les erreurs de l’éditeur TypeScript, notamment le typage des composants React et les importations de configuration immuable. La version du widget a également été mise à jour et la dernière version est maintenant disponible sur GitHub.
17/07/2026 :
Refonte du système de légende
- La légende lit désormais le widget Légende actif sur la page, exactement comme l’utilisateur le voit : ordre des couches, imbrication des groupes, visibilité et hiérarchie des sous-couches. Un paramètre de source de légende permet de l’associer à un widget précis ou de le détecter automatiquement.
- Sémiologie haute résolution : les échantillons des services cartographiques sont récupérés dans la légende REST à 288 DPI et associés aux lignes de légende selon leur contexte ; les échantillons vectoriels sont suréchantillonnés ; les symboles conservent leurs proportions (les échantillons de lignes restent fins, les marqueurs restent ronds), sans plages étirées ou vides
- Nouveaux placements du panneau adjacent (à droite, à gauche, en bas) : le cadre cartographique se réduit pour laisser de la place ; la largeur du panneau s’adapte au contenu avec des colonnes équilibrées ; le panneau contourne les éléments de mise en page comme les logos dans les coins ; la bordure du cadre créée dans Pro entoure ensemble la carte et la légende afin de préserver les compositions conçues dans Pro
- Légendes multipages : le placement « Pages supplémentaires (PDF uniquement) » répartit la légende sur autant de pages complètes que nécessaire, à la taille de police maximale, avec des en-têtes de continuation et le même format et la même orientation que la page cartographique
- Ajustement intelligent : le widget mesure la légende réelle en direct et affiche des avertissements précis (« 87 éléments ; environ 23 ne tiendront pas »), sélectionne automatiquement des pages supplémentaires si certains éléments risquent d’être omis (retour en arrière en un clic, ou automatiquement lorsque des couches sont désactivées) et signale toute exportation tronquée dans la ligne de résultat
- Les libellés longs passent sur trois lignes avant d’être honnêtement tronqués par des points de suspension ; le contrôle des veuves garde les titres avec leurs éléments
- Option d’activation ou de désactivation de la légende disponible pour les administrateurs, par mise en page dans les paramètres, et pour les utilisateurs finaux dans le widget, avec en plus un sélecteur de placement à l’exécution
Barres d’échelle
- Catalogue complet de 12 styles, dont Alternée (graduée), Ligne avec libellés en dessous et Ligne d’échelle à axe central, chacun accompagné d’un aperçu fidèle
- Véritables barres d’échelle doubles de Pro : les styles Double alternée et Double évidée affichent toujours deux mesures partageant le point zéro, avec une deuxième unité sélectionnée automatiquement comme complément naturel (miles-pieds, mètres-kilomètres), que l’on peut remplacer
- Libellés d’unités sans chevauchement dans tous les styles, en mode simple comme double
Facilité d’utilisation et processus de travail
- Options de remplacement à l’exécution pour le placement de la légende et le type de grille, soumises aux contrôles de visibilité de l’administrateur
- Les champs Auteur et Droits d’auteur sont désormais toujours imprimés sous la forme d’une ligne de crédits cartographiques épurée dans la marge inférieure de la page lorsque la mise en page ne comporte aucun élément de texte les intégrant
- Boutons « Appliquer à toutes les mises en page » pour les paramètres de la carte d’ensemble, de la grille et de la légende ; la réimportation d’un fichier .pagx met désormais à jour la mise en page correspondante sur place et conserve ses paramètres
- L’aperçu en direct de l’emprise d’impression tient compte du panneau de légende, du mode carte seule et des dimensions en pixels explicites avant le premier export
- Optimisation des performances (génération et capture simultanées de la légende, mise en cache des échantillons de couleur, extraction parallèle) et vérification de l’accessibilité WCAG pour tous les contrôles
09/07/2026 :
Ajouter @ncramer11 comme contributeur. Problème ci-dessous résolu.
Le problème : setting.tsx récupère ses listes déroulantes (formats, styles de flèche du nord, styles et unités de barre d’échelle) depuis runtime/lib/pdfRenderer.ts. Ce fichier importe également quatre modules esri/* qui sont donc inclus dans le bundle compilé des paramètres. Il semble que la page de création ne puisse pas toujours charger les modules esri au moment où le panneau des paramètres s’ouvre. Dans ce cas, le module des paramètres échoue avec le message window.require is not a function dans la console, et le widget ainsi que le panneau des paramètres restent bloqués sur l’indicateur de chargement.
Commit 1 : Déplace ces listes déroulantes dans un nouveau fichier, src/printConstants.ts, qui n’importe rien depuis esri. pdfRenderer.ts les réexporte, de sorte que le code d’exécution ne change pas du tout (widget.tsx n’est pas modifié), et setting.tsx importe désormais ces éléments depuis le nouveau fichier. Ainsi, le bundle des paramètres ne référence plus esri et se charge correctement. Il est également passé d’environ 3,3 Mo à 350 Ko. J’ai ajouté un commentaire dans printConstants.ts pour expliquer pourquoi ce fichier doit rester indépendant d’esri.
Commit 2 : Remplace les sept propriétés indentLevel={1} de SettingRow par indented. Mon éditeur signale indentLevel car cette propriété ne figure pas dans les définitions de types d’ExB 1.20. Le comportement est identique, alors n’hésitez pas à ignorer cette modification si vous préférez.
- Nouveauté : carte en médaillon de situation. Activez une carte de localisation avec un zoom plus éloigné et un indicateur d’emprise dans n’importe quel coin du cadre de la carte. Tout se configure dans les paramètres du widget ; aucune modification de votre mise en page Pro n’est nécessaire.
- Nouveauté : grilles et graticules, dans le style d’ArcGIS Pro. Choisissez un graticule (latitude/longitude, compatible avec tous les systèmes de coordonnées), une grille métrique (unités de la carte) ou une grille de référence (index A-1). Les styles de ligne, les couleurs, les intervalles et les étiquettes sont configurables. Pour rester lisibles sur les images, les étiquettes comprennent des suffixes d’hémisphère et des halos.
- Nouveauté : les commandes d’exécution permettent aux utilisateurs d’activer ou de désactiver le médaillon et la grille pour chaque impression.
- Amélioration : la limite de capture de la carte est désormais définie automatiquement en fonction de la carte graphique, pour des impressions plus nettes des mises en page volumineuses. La ligne de progression de l’export indique la résolution effective en DPI.
- Amélioration : les URL longues dans le texte d’attribution passent désormais à la ligne au lieu de déborder de la page.
- Correction : affichage de « 1 pouce équivaut à 0 mile » dans les mises en page utilisant les miles à l’échelle d’une ville.
02/07/2026 :
Première version bêta. Publiée sur GitHub. Vos commentaires sont les bienvenus avant que je la déclare stable.