Aperçu
Ce widget apporte l'impression de cartes de style ArcGIS Pro dans ArcGIS Experience Builder sans nécessiter de service d'impression. Vous partagez une mise en page depuis ArcGIS Pro sous forme de fichier de mise en page (.pagx), l'importez une fois dans les paramètres du widget, et le widget reconstruit cette page dans le navigateur par rapport à votre carte en direct : cadre de carte, titre et texte, flèche nord, barre d'échelle, légende, images et lignes.
https://github.com/brianmcleer/print-advanced-widget
Ceci est la première version et je la publie en tant que bêta. J'aimerais que la communauté l'utilise avec de vraies mises en page et de vraies cartes avant que je la considère stable. Si vous pouvez l'essayer et envoyer des retours, ce serait d'une grande aide. Voir "Ce que j'aimerais aider à tester" ci-dessous.
Remarque : Nécessite ArcGIS Experience Builder Developer Edition 1.19 ou 1.20 (React 19). Les versions 1.18 et antérieures ne sont pas prises en charge.
Remarque : Les dépendances du widget s'installent automatiquement avec la commande standard "npm install" dans le dossier client EB. Aucune installation séparée nécessaire.
Remarque : Importez un fichier de mise en page ArcGIS Pro (.pagx) dans les paramètres du widget pour définir la page. Il existe également un chemin optionnel vers un service d'impression Esri si vous préférez utiliser un service ExportWebMap côté serveur.
Que peut faire ce widget ?
- Reproduit une mise en page .pagx ArcGIS Pro dans le navigateur (cadre de carte, texte, lignes, flèche nord, barre d'échelle, images, légende), calibrée par rapport à une sortie Pro réelle.
- Exporte PDF et SVG en tant que vrai vecteur, plus PNG32, PNG8, JPG, GIF, TIFF et EPS. Aucun service d'impression requis.
- Chemin optionnel vers un service d'impression Esri (une URL ExportWebMap) pour les mises en page côté serveur, qui ajoute également AIX.
- Aperçu de la zone d'impression dessiné sur la carte, vous voyez donc ce qui sera imprimé avant d'exporter. Gardez l'échelle actuelle, gardez l'étendue actuelle, définissez une échelle fixe ou choisissez-en une dans une liste, avec un verrouillage bascule.
- 12 styles de flèche nord et 9 styles de barre d'échelle affichés sous forme de vignettes, plus une option par défaut de mise en page.
- Système de coordonnées de sortie (WKID) pour imprimer dans une projection différente de celle de la carte.
- Auteur, droits d'auteur et jetons d'attribution. Exportation légende et carte uniquement. Polices personnalisées par URL, y compris une importation Google Fonts.
- Liste des exportations récentes, et importation/exportation XML de toute la configuration.
- Contrôle administrateur sur les paramètres par défaut, les formats proposés et les contrôles runtime visibles par les utilisateurs finaux.
Ce que j'aimerais aider à tester
- Vos propres mises en page .pagx ArcGIS Pro. Importez-en une et dites-moi à quel point la sortie est proche de Pro. Si quelque chose ne va pas, envoyer le .pagx et une capture d'écran me permet de le reproduire.
- L'aperçu de la zone d'impression et le verrouillage d'échelle, sur différentes cartes de base et projections.
- Le chemin du service d'impression Esri, pointant vers votre propre URL ExportWebMap.
- Système de coordonnées de sortie, impression dans un WKID différent de votre carte.
- Polices personnalisées par URL et importation Google Fonts dans la sortie PDF.
Comment faire un retour : commentez ici ou ouvrez un problème sur GitHub. Incluez votre version EB, votre navigateur et toutes erreurs console du navigateur. Un court enregistrement d'écran aide beaucoup (j'utilise OBS Studio).
Journal des modifications :
09/04/2026 :
Plus en bêta désormais, je l'ai sur mes sites comme widget actif. Nouvelles fonctions :
- Ajout de l'export Google Earth (KMZ) pour les exportations carte seule
- Ajout de la sortie raster géoréférencée : vrai GeoTIFF pour TIFF, fichier world plus
.prj pour PNG, JPG et GIF - Le support du système de coordonnées est maintenant universel plutôt qu'une liste fixe, couvrant
.prj sortie, clé GeoTIFF et jetons nom du système de coordonnées - Ajout complet du support du texte dynamique ArcGIS Pro, incluant temps, crédits des couches services, propriétés référence spatiale, coordonnées cadre carte et jetons pages série cartographique
- Ajout du filtrage légende dépendant à l'échelle
- La série cartographique imprime le panneau légende sur chaque page et régénère sa grille selon le cadre effectif
- Import/export XML des paramètres prend maintenant en charge les valeurs par défaut grille, aperçu et légende en aller-retour
- Correction des tailles symbole, texte et ligne à haute DPI
- Correction des images ne s'imprimant pas à l'échelle aux grandes échelles
- Correction des échantillons manquants dans la légende pour groupes services cartographiques
- Correction du placement légende bas-gauche et bas-droit
- Correction "Appliquer à toutes les mises en page"
- Correction du basculement légende ne se rafraîchissant pas au changement de mise en page
- La légende respecte maintenant
.pagx nombre de colonnes et visibilité titre
08/12/2026 :
Correction des éléments légende rendus comme carrés gris dans Experience Builder 1.21. Le SDK ArcGIS Maps plus récent rend le widget Légende derrière shadow DOM, ce qui cachait les échantillons symboles lors de la récolte pour impression ; l'extraction des échantillons perce maintenant shadow DOM, supporte le nouveau composant arcgis-legend et revient automatiquement à construire les symboles depuis les renderers couche si extraction insuffisante. Aucun changement nécessaire à vos cartes ou mises en page. Merci à@ncramer11pour avoir signalé via GitHub.
23/07/2026 :
Mise à jour du widget Map Switcher pour Experience Builder 1.21 afin de résoudre des erreurs éditeur TypeScript incluant typage composant React et importations configuration immuable. La version du widget a aussi été augmentée et la dernière version est disponible sur GitHub.
17/07/2026 :
Refonte du système Légende
- La légende lit maintenant le widget Légende live sur la page exactement comme vu par l'utilisateur : ordre des couches, imbrication groupes, visibilité et hiérarchie sous-couches avec un paramètre source Légende pour lier un widget spécifique ou détecter automatiquement
- Symbologie haute résolution : échantillons services cartographiques récupérés depuis la légende REST à 288 DPI et appariés contextuellement aux lignes légende ; échantillons vecteur suréchantillonnés ; symboles dessinés avec aspect correct (échantillons ligne restent fins, marqueurs ronds), plus aucun étirement ni patchs vides
- Nouveaux placements panneaux adjacents (droite, gauche, bas) : le cadre carte rétrécit pour faire place ; largeur panneau guidée par contenu avec colonnes équilibrées ; panneau s'ajuste autour mobilier mise en page comme logos coins ; bordure cadre auteur enveloppe carte et légende ensemble pour garder compositions conçues Pro intactes
- Légendes multi-pages : un placement "Pages supplémentaires (PDF uniquement)" pagine la légende sur autant de feuilles complètes que nécessaire à taille police pleine avec titres continuation même taille feuille/orientation que page carte
- Intelligence ajustement intelligent : le widget mesure la légende live réelle et avertit avec détails ("87 éléments ; environ 23 ne tiendront pas"), passe automatiquement aux pages supplémentaires quand éléments coupés (revenir en arrière en un clic ; il revient aussi seul quand couches désactivées) ; signale toute exportation tronquée sur ligne résultat
- Longues étiquettes passent à trois lignes avant une ellipse honnête ; contrôle veuve garde titres avec leurs éléments
- Bascule marche/arrêt légende disponible aux admins par mise en page dans paramètres et aux utilisateurs finaux dans le widget plus sélecteur placement runtime
Barres d'échelle
- Catalogue complet 12 styles incluant Alternée (avec ticks), Ligne avec étiquettes dessous et ligne Échelle axe central chacun avec vignette aperçu précise
- Vraies doubles barres d'échelle Pro : Double alternée et Double creuse impriment toujours deux mesures partageant zéro avec seconde unité auto-sélectionnée comme complément naturel (miles-pieds, mètres-kilomètres) modifiable manuellement
- Étiquettes unités anti-collision dans tous styles modes simple ou double
Utilisabilité et flux travail
- Substitutions utilisateur runtime pour placement légende type grille contrôlées par visibilité admin
- Champs Auteur & Copyright toujours imprimés proprement dans ligne crédits cartographiques marge basse quand mise en page sans élément texte consommant ces champs
- 'Appliquer à toutes les mises en page' boutons pour aperçu grille paramètres légende ; réimport .pagx met à jour mise en page correspondante in situ tout en conservant ses paramètres
- 'Aperçu live étendue impression suit panneau légende mode carte seule dimensions pixels explicites avant premier export
- 'Passage performance (construction/capture légende concurrente cache échantillons extraction parallèle) plus passage accessibilité WCAG sur tous contrôles
09/07/2026 :
+ Ajout+ @ncramer11+ comme contributeur. Résolution problème ci-dessous.
+ Le problème :+ + setting.tsx + + obtient ses listes déroulantes (formats styles flèche nord styles barre échelle unités) depuis + + runtime/lib/pdfRenderer.ts. Ce fichier importe aussi quatre + + esri/* + + modules donc ceux-ci sont inclus dans bundle paramètres compilé. Il semble que builder page ne puisse pas toujours charger modules esri au moment où panneau paramètres s'ouvre. Quand cela arrive module paramètres échoue avec + + window.require n'est pas une fonction + + dans console et builder affiche widget panneau paramètres bloqués sur spinner chargement.
+ Commit 1 : + + Déplace ces listes déroulantes dans nouveau fichier , + + src/printConstants.ts qui n'importe rien depuis esri.+ + pdfRenderer.ts + + les réexporte ainsi code runtime ne change pas du tout (widget.tsx + + reste intact), puis + + setting.tsx + + importe maintenant depuis nouveau fichier. Avec ça bundle paramètres ne référence plus esri charge correctement. Taille réduite aussi d'environ 3.3 Mo à environ 350 Ko. J'ai laissé commentaire dans + + printConstants.ts + explaining why it needs to stay esri-free.
Commit 2: Swaps the seven indentLevel={1} props on SettingRow for indented. My editor flags indentLevel because it is not in ExB 1.20 typings. No difference in behavior, so feel free to skip this one if you would rather.
- New: Overview inset map. Turn on a zoomed-out locator map with an extent indicator in any corner of the map frame. Configured entirely in the widget settings, no changes to your Pro layout needed.
- New: Grids and graticules, ArcGIS Pro style. Choose a graticule (latitude/longitude, works in any coordinate system), a measured grid (map units), or a reference grid (A-1 index). Line styles, colors, intervals, and labels are configurable, and labels include hemisphere suffixes and halos for readability over imagery.
- New: Runtime toggles let users turn the inset and grid on or off per print.
- Improved: Map capture limit is now automatic based on the graphics card, so large layouts print sharper. The export progress line reports the effective DPI.
- Improved: Long URLs in attribution text now wrap instead of running off the page.
- Fixed: "1 inch equals 0 miles" on layouts using miles at city scales.
07/02/2026:
Initial beta release. Posted to GitHub. Looking for feedback before I mark it stable.