Overzicht
Deze widget brengt ArcGIS Pro-stijl kaartafdrukken naar ArcGIS Experience Builder zonder dat een printservice nodig is. Je deelt een layout vanuit ArcGIS Pro als een layoutbestand (.pagx), importeert het eenmaal in de widget-instellingen, en de widget bouwt die pagina opnieuw op in de browser tegen je live kaart: kaartframe, titel en tekst, noordpijl, schaalbalk, legenda, afbeeldingen en lijnen.
https://github.com/brianmcleer/print-advanced-widget
Dit is de eerste release en ik breng het uit als een bèta. Ik wil graag dat de community het test met echte layouts en echte kaarten voordat ik het stabiel noem. Als je het kunt proberen en feedback kunt geven, zou dat erg helpen. Zie "Waar ik hulp bij wil bij testen" hieronder.
Opmerking: Vereist ArcGIS Experience Builder Developer Edition 1.19 of 1.20 (React 19). 1.18 en eerder worden niet ondersteund.
Opmerking: De afhankelijkheden van de widget worden automatisch geïnstalleerd met de standaard "npm install" in de EB-clientmap. Geen aparte installatie nodig.
Opmerking: Importeer een ArcGIS Pro layoutbestand (.pagx) in de widget-instellingen om de pagina te definiëren. Er is ook een optioneel Esri printservicepad als je liever een server-side ExportWebMap-service gebruikt.
Wat Kan Deze Widget Doen?
- Reproduceert een ArcGIS Pro .pagx layout in de browser (kaartframe, tekst, lijnen, noordpijl, schaalbalk, afbeeldingen, legenda), gekalibreerd tegen echte Pro-uitvoer.
- Exporteert PDF en SVG als echte vectoren, plus PNG32, PNG8, JPG, GIF, TIFF en EPS. Geen printservice vereist.
- Optioneel Esri printservicepad (een ExportWebMap-URL) voor server-side layouts, wat ook AIX toevoegt.
- Printgebiedvoorbeeld getekend op de kaart, zodat je ziet wat er wordt afgedrukt voordat je exporteert. Houd de huidige schaal aan, houd de huidige extent aan, stel een vaste schaal in of kies er een uit een lijst met een vergrendelingsschakelaar.
- 12 noordpijlstijlen en 9 schaalbalkstijlen weergegeven als miniaturen, plus een Layout standaardoptie.
- Uitvoersysteem coördinaten (WKID) om te printen in een andere projectie dan de kaart.
- Auteur-, copyright- en attributietokens. Alleen legenda- en kaartexport. Aangepaste lettertypen via URL, inclusief een Google Fonts-import.
- Lijst met recente exports en XML-import en -export van de hele configuratie.
- Beheerderscontrole over de standaardinstellingen, welke formaten worden aangeboden en welke runtime-bedieningen eindgebruikers zien.
Waar Ik Hulp Bij Wil Bij Testen
- Je eigen ArcGIS Pro .pagx layouts. Importeer er één en vertel me hoe dicht de uitvoer bij Pro ligt. Als er iets niet klopt, helpt het sturen van het .pagx-bestand en een screenshot me om het te reproduceren.
- Het printgebiedvoorbeeld en schaalvergrendeling op verschillende basemaps en projecties.
- Het Esri printservicepad gericht op je eigen ExportWebMap-URL.
- Uitvoersysteem coördinaten, printen in een WKID anders dan je kaart.
- Aangepaste lettertypen via URL en de Google Fonts-import in PDF-uitvoer.
Hoe terugrapporteren: reageer hier of open een issue op GitHub. Vermeld je EB-versie, je browser en eventuele browserconsolefouten. Een korte schermopname helpt veel (ik gebruik OBS Studio).
Wijzigingslogboek:
09/04/2026:
Niet meer in bèta, heb het in mijn sites als live widget. Nieuwe functies zijn:
- Toegevoegd Google Earth (KMZ) export voor alleen-kaart exports
- Toegevoegd georeferentieerde rasteruitvoer: echte GeoTIFF voor TIFF, world file plus
.prj voor PNG, JPG en GIF - Ondersteuning voor coördinatensystemen is nu universeel in plaats van een vaste lijst, met
.prj uitvoer, GeoTIFF keying en coördinatensysteem naam tokens - Volledige ondersteuning voor ArcGIS Pro dynamische tekst toegevoegd, inclusief tijd, service layer credits, ruimtelijke referentie-eigenschappen, kaartframe-coördinaten en map series paginatokens
- Schaalafhankelijke legendafiltering toegevoegd
- Map series drukt het legendapaneel af op elke pagina en genereert zijn raster opnieuw tegen het effectieve frame
- Instellingen XML import en export rond nu raster-, overzichts- en legenda-standaarden volledig af
- Vaste symbolen-, tekst- en lijngroottes bij hoge DPI
- Afbeeldingen die niet op schaal werden afgedrukt bij grote schalen opgelost
- Ontbrekende legendarische kleurvakken voor kaart-servicegroepen opgelost
- Linksonder- en rechtsonder-legenda plaatsing opgelost
- "Toepassen op alle layouts" opgelost
- Legenda-schakelaar vernieuwt nu correct bij layoutwijziging
- Legenda respecteert nu
.pagx kolomtelling en titelzichtbaarheid
8/12/2026:
Legenda-items die als grijze vierkanten werden weergegeven in Experience Builder 1.21 opgelost. De nieuwere ArcGIS Maps SDK rendert de Legend-widget achter shadow DOM, wat kleurvakken verstopte voor het printproces; kleurvakextractie doorboort nu shadow DOM, ondersteunt het nieuwe arcgis-legend component en valt automatisch terug op het bouwen van symbolen uit laagrenderers als extractie tekortschiet. Geen wijzigingen nodig aan je kaarten of layouts. Dank aan@ncramer11voor het melden via GitHub.
7/23/2026:
De Map Switcher widget bijgewerkt voor Experience Builder 1.21 om TypeScript-editorfouten op te lossen, inclusief React-componenttypingen en ongewijzigde configuratie-imports. De widgetversie is ook verhoogd en de nieuwste release is nu beschikbaar op GitHub.
7/17/2026:
Legenda-systeem revisie
- Legenda leest nu live Legend-widget op de pagina exact zoals de gebruiker ziet: laagvolgorde, groepsnesting, zichtbaarheid en sublaaghiërarchie met een Legend-broninstelling om een specifieke widget te binden of automatisch te detecteren
- Hoge-resolutie symboliek: kaartservice kleurvakken opgehaald van REST-legenda bij 288 DPI en contextueel gematcht met legendarijen; vector kleurvakken supersampled; symbolen worden aspect-correct getekend (lijnkleurvakken blijven dun, markers blijven rond), geen uitgerekte of lege plekken meer
- Nieuwe aangrenzende paneelplaatsingen (rechts, links, onder): het kaartframe krimpt om ruimte te maken; paneelbreedte wordt bepaald door inhoud met gebalanceerde kolommen; het paneel snijdt rond layout-elementen zoals hoeklogo's; de gemaakte framegrens wikkelt kaart en legenda samen zodat Pro-ontworpen composities intact blijven
- Meerdere pagina's legendas: een "Extra pagina's (alleen PDF)" plaatsing verdeelt de legenda over zoveel volledige vellen als nodig is op volledige lettergrootte met voortzettingskoppen en dezelfde velgrootte en oriëntatie als de kaartpagina
- Slimme pasintelligentie: de widget meet live de daadwerkelijke legenda en waarschuwt met details ("87 items; ongeveer 23 passen niet"), stelt automatisch extra pagina's in wanneer items zouden vallen (één klik terugzetten; zet zichzelf terug wanneer lagen worden uitgeschakeld) en markeert elke ingekorte export op de resultaatregel
- Lange labels worden gewrapt naar drie regels vóór een eerlijke ellipsis; weduwecontrole houdt koppen bij hun items
- Legenda aan/uit-schakelaar beschikbaar voor beheerders per layout in instellingen en voor eindgebruikers in de widget plus runtime plaatsingsselector
Schaalbalken
- Volledige catalogus van 12 stijlen inclusief Afwisselend (aangevinkt), Lijn met labels eronder en midden-as Schaal lijn elk met nauwkeurige voorbeeldtegel
- Echte Pro dubbele schaalbalken: Dubbel afwisselend en Dubbel hol drukken altijd twee metingen af die het nulpunt delen met tweede unit automatisch geselecteerd als natuurlijke complement (mijlen-voeten, meters-kilometers) die overschreven kan worden
- Botsingsbestendige unitlabels in elke stijl zowel enkelvoudig als dubbel modus
Gebruiksvriendelijkheid en workflow
- Runtime gebruikersoverschrijvingen voor legenda plaatsing en rastertype beperkt door admin zichtbaarheid controles
- 'Auteur' en 'Copyright' velden worden nu altijd afgedrukt in een schone cartografische creditregel in de onderste paginamarge wanneer de layout geen tekstelement heeft dat ze gebruikt
- 'Toepassen op alle layouts' knoppen voor overzicht-, raster- en legenda-instellingen; herimporteren van .pagx werkt nu overeenkomende layout ter plaatse bij met behoud van instellingen
- 'Live print-bereikvoorbeeld volgt legenda-paneel, alleen-kaartmodus en expliciete pixelafmetingen vóór eerste export
- 'Prestatieverbetering (gelijktijdige legenda-opbouw en vastlegging, kleurvakcaching, parallelle extractie) plus WCAG toegankelijkheidspassages over alle bedieningselementen heen
'07/09/2026:',' field_74':'Voeg toe',' field_75':'@ncramer11',' field_76':'als bijdrager. Opgelost onderstaande probleem.', ' field_77':'Het probleem:', ' field_78':'', ' field_79':'setting.tsx', ' field_80':'', ' field_81':'krijgt zijn dropdownlijsten (formaten, noordpijlstijlen, schaalbalkstijlen en units) van', ' field_82':'', ' field_83':'runtime/lib/pdfRenderer.ts. Dat bestand importeert ook vier', ' field_84':'', ' field_85':'esri/*', ' field__86':'', ' field__87':'modules dus die worden opgenomen in het gecompileerde instellingenpakket. Het lijkt erop dat de builderpagina esri-modules niet altijd kan laden op het moment dat het instellingenpaneel opent. Wanneer dat gebeurt faalt het instellingenmodule met', ' field__88':'', ' field__89':'window.require is geen functie', ' field__90':'', ' field__91':'in de console,en toont builder widget plus instellingenpaneel vastgelopen op laadspinner.', ' field__92':'Commit 1:', ' field__93':'', ' field__94':'Verplaatst die dropdownlijsten naar nieuw bestand', ' field__95':'', ' field__96':'src/printConstants.ts dat niets importeert van esri.', ' field__97':'', ' field__98':'pdfRenderer.ts', ' field__99':'', ' field__100':'exporteert ze opnieuw zodat runtime-code helemaal niet verandert (widget.tsx', ' field__101':'', ' field__102':'blijft onaangeroerd),en ', ' field__103':'', ' field__104':'setting.tsx ', ' field__105':'', ' field__106':'importeert nu van nieuw bestand.Daarmee verwijst instellingenpakket niet meer naar esri,en laadt goed.Het krimpt ook van ca 3.3 MB tot ca 350 KB.Ik liet commentaar achter in ', ' field__107':'', ' field__108':'printConstants.ts ', ' field__109':'', ' field__110':'waarom dit esri-vrij moet blijven.', ' field__111':'Commit 2:', ' field__112':'', ' field__113':'Vervangt zeven ', ' field__114':'', ' field__115':
Add @ncramer11 as contributor. Resolved below issue.
The problem: setting.tsx gets its dropdown lists (formats, north arrow styles, scale bar styles and units) from runtime/lib/pdfRenderer.ts. That file also imports four esri/* modules, so those get pulled into the compiled settings bundle. It seems the builder page cannot always load esri modules at the moment the settings panel opens. When that happens the settings module fails with window.require is not a function in the console, and the builder shows the widget and the settings panel stuck on the loading spinner.
Commit 1: Moves those dropdown lists into a new file, src/printConstants.ts, which imports nothing from esri. 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.