Visão Geral
Este widget traz a impressão de mapas no estilo ArcGIS Pro para o ArcGIS Experience Builder sem a necessidade de um serviço de impressão. Você compartilha um layout do ArcGIS Pro como um arquivo de layout (.pagx), importa-o uma vez nas configurações do widget, e o widget reconstrói essa página no navegador com base no seu mapa ao vivo: quadro do mapa, título e texto, seta norte, barra de escala, legenda, imagens e linhas.
https://github.com/brianmcleer/print-advanced-widget
Esta é a primeira versão e estou lançando-a como beta. Gostaria que a comunidade testasse com layouts reais e mapas reais antes de considerá-la estável. Se você puder experimentar e enviar feedback, isso seria de grande ajuda. Veja "O que eu gostaria de ajuda para testar" abaixo.
Nota: Requer ArcGIS Experience Builder Developer Edition 1.19 ou 1.20 (React 19). As versões 1.18 e anteriores não são suportadas.
Nota: As dependências do widget são instaladas automaticamente com o comando padrão "npm install" na pasta do cliente EB. Nenhuma instalação separada é necessária.
Nota: Importe um arquivo de layout do ArcGIS Pro (.pagx) nas configurações do widget para definir a página. Também há um caminho opcional para o serviço de impressão Esri se preferir usar um serviço ExportWebMap do lado do servidor.
O Que Este Widget Pode Fazer?
- Reproduz um layout .pagx do ArcGIS Pro no navegador (quadro do mapa, texto, linhas, seta norte, barra de escala, imagens, legenda), calibrado contra a saída real do Pro.
- Exporta PDF e SVG como vetor verdadeiro, além de PNG32, PNG8, JPG, GIF, TIFF e EPS. Nenhum serviço de impressão é necessário.
- Caminho opcional para serviço de impressão Esri (uma URL ExportWebMap) para layouts do lado do servidor, que também adiciona AIX.
- Visualização da área de impressão desenhada no mapa, para que você veja o que será impresso antes de exportar. Mantenha a escala atual, mantenha a extensão atual, defina uma escala fixa ou escolha uma da lista, com um botão de bloqueio.
- 12 estilos de seta norte e 9 estilos de barra de escala mostrados como miniaturas, além da opção padrão do Layout.
- Sistema de coordenadas de saída (WKID) para imprimir em uma projeção diferente da do mapa.
- Tokens de autor, direitos autorais e atribuição. Exportação apenas da legenda e mapa. Fontes personalizadas por URL, incluindo importação Google Fonts.
- Lista recente de exportações e importação/exportação XML da configuração completa.
- Controle administrativo sobre as configurações padrão, quais formatos são oferecidos e quais controles em tempo de execução os usuários finais veem.
O Que Eu Gostaria De Ajuda Para Testar
- Seus próprios layouts .pagx do ArcGIS Pro. Importe um e me diga quão próximo a saída está do Pro. Se algo estiver errado, enviar o .pagx e uma captura de tela me permite reproduzir o problema.
- A visualização da área de impressão e o bloqueio da escala em diferentes mapas base e projeções.
- O caminho para o serviço de impressão Esri apontado para sua própria URL ExportWebMap.
- Sistema de coordenadas de saída, imprimindo em um WKID diferente do seu mapa.
- Fontes personalizadas por URL e a importação Google Fonts na saída PDF.
Como reportar: comente aqui ou abra uma issue no GitHub. Inclua sua versão EB, seu navegador e quaisquer erros no console do navegador. Uma gravação curta da tela ajuda muito (eu uso OBS Studio).
Registro de alterações:
09/04/2026:
Não está mais em Beta, já está nos meus sites como widget ativo. Novas funções são:
- Adicionada exportação Google Earth (KMZ) para exportações apenas do mapa
- Adicionada saída raster georreferenciada: GeoTIFF verdadeiro para TIFF, arquivo world mais
.prj para PNG, JPG e GIF - Suporte ao sistema de coordenadas agora é universal em vez de uma lista fixa, cobrindo
.prj saída, chaveamento GeoTIFF e tokens nome do sistema de coordenadas - Adicionado suporte completo ao texto dinâmico do ArcGIS Pro, incluindo tempo, créditos da camada do serviço, propriedades da referência espacial, coordenadas do quadro do mapa e tokens da página da série do mapa
- Adicionado filtro dependente da escala na legenda
- Série do mapa imprime o painel da legenda em cada página e regenera sua grade contra o quadro efetivo
- Importação e exportação XML das configurações agora fazem ida e volta com padrões da grade, visão geral e legenda
- Corrigidos tamanhos fixos para símbolos, texto e linhas em DPI alto
- Corrigido problema onde imagens não imprimiam na escala correta em escalas grandes
- Corrigidas amostras ausentes na legenda para grupos de serviços de mapas
- Corrigida colocação da legenda no canto inferior esquerdo e direito
- Corrigido "Aplicar a todos os layouts"
- Corrigido o toggle da legenda que não atualizava na mudança do layout
- Legenda agora respeita
.pagx contagem de colunas e visibilidade do título
08/12/2026:
Corrigidos itens da legenda renderizando como quadrados cinza no Experience Builder 1.21. O mais novo ArcGIS Maps SDK renderiza o widget Legend atrás do shadow DOM, que escondia as amostras dos símbolos na captura para impressão; a extração das amostras agora atravessa shadow DOM, suporta o novo componente arcgis-legend e automaticamente recorre à construção dos símbolos a partir dos renderizadores das camadas se a extração falhar. Nenhuma mudança necessária nos seus mapas ou layouts. Obrigado a@ncramer11 por reportar via GitHub.
23/07/2026:
Atualizado o widget Map Switcher para Experience Builder 1.21 para resolver erros no editor TypeScript, incluindo tipagem dos componentes React e importações imutáveis das configurações. A versão do widget também foi atualizada e a última versão já está disponível no GitHub.
17/07/2026:
Reforma total do sistema Legend
- Legenda agora lê o widget Legend ativo na página exatamente como o usuário vê: ordem das camadas, aninhamento dos grupos, visibilidade e hierarquia das subcamadas, com uma configuração Fonte Legend para vincular um widget específico ou detectar automaticamente
- Simbologia em alta resolução: amostras dos serviços de mapas obtidas da legenda REST em 288 DPI e combinadas contextualmente às linhas da legenda; amostras vetoriais superamostradas; símbolos desenhados com aspecto verdadeiro (amostras lineares permanecem finas, marcadores permanecem redondos), sem mais distorções ou áreas em branco
- Novas colocações adjacentes dos painéis (direita, esquerda, inferior): o quadro do mapa encolhe para abrir espaço; largura dos painéis é guiada pelo conteúdo com colunas balanceadas; o painel ajusta-se ao redor dos elementos fixos como logos nos cantos; a borda autoral envolve mapa e legenda juntos para manter composições projetadas no Pro intactas
- Legendas multipágina: uma colocação "Páginas adicionais (somente PDF)" pagina a legenda através das folhas completas necessárias no tamanho total da fonte com cabeçalhos contínuos mantendo tamanho e orientação iguais à página do mapa
- Inteligência Smart fit: o widget mede a legenda ativa real e avisa com detalhes ("87 itens; cerca de 23 não cabem"), define automaticamente páginas adicionais quando itens seriam cortados (reversão com um clique que também se reverte conforme camadas são desativadas) e sinaliza qualquer exportação truncada na linha resultado
- Rótulos longos quebram em três linhas antes de usar reticências honestas; controle viúvas mantém cabeçalhos junto aos seus itens
- Toggle ligar/desligar legenda disponível para administradores por layout nas configurações e para usuários finais no widget, além de seletor runtime para colocação
Barras de escala
- Catálogo completo com 12 estilos incluindo Alternada (com marcas), Linha com rótulos abaixo e Linha centralizada na barra de escala; cada um com pré-visualização precisa em miniatura
- Barras duplas verdadeiras estilo Pro: Dupla alternada e Dupla vazada sempre imprimem duas medidas compartilhando ponto zero; segunda unidade auto selecionada como complemento natural (milhas-pés, metros-quilômetros) podendo ser sobrescrita manualmente
- Rótulos das unidades à prova de colisão em todos os estilos nos modos simples ou duplos
Usabilidade e fluxo de trabalho
- Substituições pelo usuário final em tempo real para colocação da legenda e tipo da grade controladas pela visibilidade administrativa
- Campos Autor e Direitos Autorais agora sempre imprimem numa linha limpa dos créditos cartográficos na margem inferior quando o layout não tem elemento texto consumindo-os
- 'Aplicar a todos os layouts' botões para visão geral, grade e configurações da legenda; reimportar um .pagx atualiza o layout correspondente preservando suas configurações
- 'Preview' ao vivo da extensão da impressão acompanha painel da legenda, modo só mapa e dimensões explícitas em pixels antes da primeira exportação
- 'Performance pass' (construção concorrente da legenda e captura; cache das amostras; extração paralela) além de passagem WCAG acessibilidade em todos os controles
09/07/2026:
+ Adicionar
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.