Resumen
Este widget trae la impresión de mapas al estilo ArcGIS Pro a ArcGIS Experience Builder sin necesidad de un servicio de impresión. Compartes un diseño desde ArcGIS Pro como un archivo de diseño (.pagx), lo importas una vez en la configuración del widget, y el widget reconstruye esa página en el navegador contra tu mapa en vivo: marco del mapa, título y texto, flecha norte, barra de escala, leyenda, imágenes y líneas.
https://github.com/brianmcleer/print-advanced-widget
Esta es la primera versión y la estoy lanzando como beta. Me gustaría que la comunidad la pruebe con diseños reales y mapas reales antes de declararla estable. Si puedes probarla y enviar comentarios, sería de gran ayuda. Ver "Lo que me gustaría que ayudaran a probar" abajo.
Nota: Requiere ArcGIS Experience Builder Developer Edition 1.19 o 1.20 (React 19). No se soportan versiones 1.18 ni anteriores.
Nota: Las dependencias del widget se instalan automáticamente con el comando estándar "npm install" en la carpeta cliente de EB. No se necesita instalación separada.
Nota: Importa un archivo de diseño ArcGIS Pro (.pagx) en la configuración del widget para definir la página. También hay una ruta opcional para el servicio de impresión Esri si prefieres usar un servicio ExportWebMap del lado servidor.
¿Qué puede hacer este widget?
- Reproduce un diseño .pagx de ArcGIS Pro en el navegador (marco del mapa, texto, líneas, flecha norte, barra de escala, imágenes, leyenda), calibrado contra la salida real de Pro.
- Exporta PDF y SVG como vectores verdaderos, además de PNG32, PNG8, JPG, GIF, TIFF y EPS. No requiere servicio de impresión.
- Ruta opcional al servicio de impresión Esri (una URL ExportWebMap) para diseños del lado servidor, que también añade AIX.
- Vista previa del área de impresión dibujada en el mapa, para que veas qué se imprimirá antes de exportar. Mantén la escala actual, mantén la extensión actual, establece una escala fija o elige una de una lista, con un interruptor de bloqueo.
- 12 estilos de flecha norte y 9 estilos de barra de escala mostrados como miniaturas, además de una opción predeterminada para Diseño.
- Sistema de coordenadas de salida (WKID) para imprimir en una proyección diferente a la del mapa.
- Tokens para autor, derechos de autor y atribución. Exportación solo para leyenda y mapa. Fuentes personalizadas por URL, incluyendo importación desde Google Fonts.
- Lista reciente de exportaciones e importación/exportación XML de toda la configuración.
- Control administrativo sobre las configuraciones predeterminadas, qué formatos se ofrecen y qué controles en tiempo de ejecución ven los usuarios finales.
Lo que me gustaría que ayudaran a probar
- Tus propios diseños .pagx de ArcGIS Pro. Importa uno y dime qué tan cercana es la salida a Pro. Si algo está mal, enviar el .pagx y una captura permite reproducirlo.
- La vista previa del área de impresión y el bloqueo de escala, con diferentes mapas base y proyecciones.
- La ruta al servicio de impresión Esri apuntando a tu propia URL ExportWebMap.
- Sistema de coordenadas de salida, imprimiendo en un WKID diferente al del mapa.
- Fuentes personalizadas por URL e importación desde Google Fonts en la salida PDF.
Cómo reportar: comenta aquí o abre un issue en GitHub. Incluye tu versión EB, tu navegador y cualquier error en consola. Un breve video ayuda mucho (yo uso OBS Studio).
Registro de cambios:
09/04/2026:
Ya no está en beta, lo tengo en mis sitios como widget activo. Las nuevas funciones son:
- Añadida exportación Google Earth (KMZ) para exportaciones solo mapa
- Añadida salida ráster georreferenciada: GeoTIFF verdadero para TIFF, archivo world más
.prj para PNG, JPG y GIF - El soporte para sistemas coordenados ahora es universal en lugar de una lista fija, cubriendo
.prj salida, clave GeoTIFF y tokens para nombre del sistema coordenado - Añadido soporte completo para texto dinámico ArcGIS Pro, incluyendo tiempo, créditos capa servicio, propiedades referencia espacial, coordenadas marco mapa y tokens página serie mapa
- Añadido filtrado legendario dependiente a escala
- Serie mapa imprime panel leyenda en cada página y regenera su cuadrícula contra el marco efectivo
- Importación/exportación XML configuración ahora hace ida y vuelta con cuadrícula, vista general y valores predeterminados leyenda
- Corregidos tamaños símbolo, texto y línea a alta DPI
- Corregida imagen que no imprimía a escala en escalas grandes
- Corregidas muestras faltantes en leyendas para grupos servicios mapa
- Corregida colocación leyenda abajo izquierda y abajo derecha
- Corregido "Aplicar a todos los diseños"
- Corregido que el interruptor leyenda no se actualizaba al cambiar diseño
- La leyenda ahora respeta
.pagx conteo columnas y visibilidad título
08/12/2026:
Corregidos ítems leyenda renderizados como cuadrados grises en Experience Builder 1.21. El nuevo ArcGIS Maps SDK renderiza el widget Leyenda detrás del shadow DOM ocultando muestras; ahora extracción atraviesa shadow DOM soportando nuevo componente arcgis-legend y recurre automáticamente a construir símbolos desde renderizadores si extracción falla. No se necesitan cambios en tus mapas o diseños. Gracias a@ncramer11por reportar vía GitHub.@ncramer11
23/07/2026:
Actualizado widget Cambiador Mapa para Experience Builder 1.21 para resolver errores editor TypeScript incluyendo tipado componente React e importaciones configuración inmutable. Versión widget aumentada y última versión disponible en GitHub.
17/07/2026:
Revisión sistema Leyenda
- La leyenda ahora lee el widget Leyenda vivo en la página exactamente como lo ve el usuario: orden capas, anidamiento grupos, visibilidad e jerarquía subcapas con ajuste fuente Leyenda para enlazar widget específico o detectar automáticamente
- Simbología alta resolución: muestras servicios mapa obtenidas desde REST legend a 288 DPI emparejadas contextualmente con filas leyenda; muestras vectoriales sobremuestreadas; símbolos dibujan aspecto real (líneas finas permanecen finas; marcadores redondos permanecen redondos), sin parches estirados o vacíos
- Nuevas colocaciones panel adyacente (derecha, izquierda, abajo): marco mapa se reduce para dar espacio; ancho panel guiado por contenido con columnas balanceadas; panel recorta alrededor muebles diseño como logos esquina; borde marco creado envuelve mapa y leyenda juntos manteniendo composiciones diseñadas en Pro intactas
- Leyendas multipágina: colocación "Páginas adicionales (solo PDF)" paginando leyenda a través tantas hojas completas como necesite tamaño fuente completo con encabezados continuación mismo tamaño hoja y orientación que página mapa
- Inteligencia ajuste inteligente: widget mide leyenda vivo real advirtiendo con detalles ("87 ítems; unos 23 no cabrán"), auto-predetermina páginas adicionales cuando ítems caerían (revertir con un clic; se revierte solo al desactivar capas) y marca cualquier export truncada en fila resultado
- Etiquetas largas se ajustan a tres líneas antes que aparezca puntos suspensivos honestos; control viuda mantiene encabezados con sus ítems
- Interruptor encendido/apagado leyenda disponible para admins por diseño en configuración y usuarios finales en widget más selector colocación tiempo ejecución
Barras escala
- Catálogo completo 12 estilos incluyendo Alternante (con marcas), Línea con etiquetas abajo y línea Escala eje central cada uno con vista previa precisa
- Verdaderas barras escala dual Pro: Doble alternante y Doble hueca siempre imprimen dos medidas compartiendo punto cero con segunda unidad auto-seleccionada como complemento natural (millas-pies, metros-kilómetros) modificable manualmente
- Etiquetas unidades anti-colisión en todos los estilos tanto modo simple como dual
Usabilidad y flujo trabajo
- Anulaciones usuario tiempo ejecución para colocación leyenda tipo cuadrícula controladas por visibilidad admin
- Campos Autor y Derechos siempre imprimen ahora en línea créditos cartográficos limpia margen inferior página cuando diseño no tiene elemento texto consumiéndolos
- Botones "Aplicar a todos los diseños" para vista general cuadrícula configuración leyenda; reimportar .pagx actualiza diseño coincidente in situ preservando configuraciones
- Vista previa extensión impresión viva sigue panel leyenda modo solo mapa dimensiones píxel explícitas antes primera exportación
- Mejora rendimiento (construcción captura legendaria concurrente caché muestras extracción paralela) pase accesibilidad WCAG sobre todos controles
09/07/2026:
+ Añadir
pdfRenderer.ts re-exports them so the runtime code does not change at all (widget.tsx is untouched), and setting.tsx now imports from the new file. With that, the settings bundle no longer references esri and loads fine. It also shrank from about 3.3 MB to about 350 KB. I left a comment in 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.