Übersicht
Dieses Widget bringt den ArcGIS Pro-Stil des Karten-Druckens in ArcGIS Experience Builder, ohne dass ein Druckdienst benötigt wird. Sie teilen ein Layout aus ArcGIS Pro als Layout-Datei (.pagx), importieren es einmal in den Widget-Einstellungen, und das Widget baut diese Seite im Browser gegen Ihre Live-Karte neu auf: Kartenrahmen, Titel und Text, Nordpfeil, Maßstabsleiste, Legende, Bilder und Linien.
https://github.com/brianmcleer/print-advanced-widget
Dies ist die erste Version und ich stelle sie als Beta bereit. Ich möchte, dass die Community sie mit echten Layouts und echten Karten testet, bevor ich sie als stabil bezeichne. Wenn Sie es ausprobieren und Feedback senden können, wäre das eine große Hilfe. Siehe "Wobei ich Hilfe beim Testen möchte" unten.
Hinweis: Erfordert ArcGIS Experience Builder Developer Edition 1.19 oder 1.20 (React 19). 1.18 und früher werden nicht unterstützt.
Hinweis: Die Widget-Abhängigkeiten werden automatisch mit dem Standard "npm install" im EB-Client-Ordner installiert. Keine separate Installation erforderlich.
Hinweis: Importieren Sie eine ArcGIS Pro Layout-Datei (.pagx) in den Widget-Einstellungen, um die Seite zu definieren. Es gibt auch einen optionalen Esri-Druckdienstpfad, wenn Sie lieber einen serverseitigen ExportWebMap-Dienst verwenden möchten.
Was kann dieses Widget?
- Reproduziert ein ArcGIS Pro .pagx Layout im Browser (Kartenrahmen, Text, Linien, Nordpfeil, Maßstabsleiste, Bilder, Legende), kalibriert gegen echte Pro-Ausgabe.
- Exportiert PDF und SVG als echte Vektoren sowie PNG32, PNG8, JPG, GIF, TIFF und EPS. Kein Druckdienst erforderlich.
- Optionaler Esri-Druckdienstpfad (eine ExportWebMap-URL) für serverseitige Layouts, der auch AIX hinzufügt.
- Vorschau des Druckbereichs auf der Karte gezeichnet, sodass Sie sehen, was gedruckt wird, bevor Sie exportieren. Behalten Sie den aktuellen Maßstab bei, behalten Sie den aktuellen Ausschnitt bei, legen Sie einen festen Maßstab fest oder wählen Sie einen aus einer Liste mit einem Sperrschalter.
- 12 Nordpfeil-Stile und 9 Maßstabsleisten-Stile als Miniaturansichten angezeigt sowie eine Layout-Standardoption.
- Ausgabe-Koordinatensystem (WKID), um in einer anderen Projektion als der Karte zu drucken.
- Autor-, Urheberrechts- und Attributions-Tokens. Nur Legende und Karte exportieren. Benutzerdefinierte Schriftarten per URL, einschließlich eines Google Fonts Imports.
- Liste der letzten Exporte sowie XML-Import und -Export der gesamten Konfiguration.
- Administratorsteuerung über die Standardeinstellungen, welche Formate angeboten werden und welche Laufzeitsteuerungen Endbenutzer sehen.
Wobei ich Hilfe beim Testen möchte
- Ihre eigenen ArcGIS Pro .pagx Layouts. Importieren Sie eines und sagen Sie mir, wie nah die Ausgabe an Pro ist. Wenn etwas nicht stimmt, hilft das Senden der .pagx-Datei und eines Screenshots mir bei der Reproduktion.
- Die Vorschau des Druckbereichs und die Maßstabs-Sperre über verschiedene Grundkarten und Projektionen hinweg.
- Der Esri-Druckdienstpfad, der auf Ihre eigene ExportWebMap-URL zeigt.
- Ausgabe-Koordinatensystem, Drucken in einem WKID anders als Ihre Karte.
- Benutzerdefinierte Schriftarten per URL und der Google Fonts Import in der PDF-Ausgabe.
Wie man Rückmeldung gibt: Kommentieren Sie hier oder öffnen Sie ein Issue auf GitHub. Geben Sie Ihre EB-Version, Ihren Browser und eventuelle Browser-Konsolenfehler an. Eine kurze Bildschirmaufnahme hilft sehr (ich verwende OBS Studio).
Änderungsprotokoll:
09/04/2026:
Nicht mehr Beta, habe es auf meinen Sites als Live-Widget. Neue Funktionen sind:
- Google Earth (KMZ) Export für nur Kartenexporte hinzugefügt
- Georeferenzierte Rasterausgabe hinzugefügt: echtes GeoTIFF für TIFF, World-Datei plus
.prj für PNG, JPG und GIF - Koordinatensystem-Unterstützung ist jetzt universell statt einer festen Liste und umfasst
.prj Ausgabe, GeoTIFF-Keying und Koordinatensystem-Namen-Tokens - Volle Unterstützung für dynamischen Text von ArcGIS Pro hinzugefügt, einschließlich Zeit, Service-Layer-Credits, räumliche Referenzeigenschaften, Kartenrahmen-Koordinaten und Map Series Seiten-Tokens
- Skalierungsabhängige Legendenfilterung hinzugefügt
- Map Series druckt das Legendenfeld auf jeder Seite und generiert sein Raster gegen den effektiven Rahmen neu
- Einstellungen XML Import und Export runden jetzt Raster-, Übersicht- und Legenden-Standards ab
- Feste Symbol-, Text- und Linienstärken bei hoher DPI behoben
- Behoben: Bilder werden bei großen Maßstäben nicht maßstabsgetreu gedruckt
- Fehlende Legendenmuster für Karten-Service-Gruppen behoben
- Legendenplatzierung unten links und unten rechts behoben
- "Auf alle Layouts anwenden" behoben
- Legendenumschaltung aktualisiert sich jetzt bei Layoutwechsel
- Legende beachtet jetzt
.pagx Spaltenanzahl und Titel-Sichtbarkeit
08/12/2026:
Legendenobjekte wurden in Experience Builder 1.21 als graue Quadrate gerendert behoben. Das neuere ArcGIS Maps SDK rendert das Legend-Widget hinter Shadow DOM, was Symbolmuster vom Druckergebnis verbarg; Musterextraktion durchdringt jetzt Shadow DOM, unterstützt die neue arcgis-legend-Komponente und fällt automatisch zurück auf den Aufbau von Symbolen aus Layer-Renderern falls Extraktion unvollständig ist. Keine Änderungen an Ihren Karten oder Layouts nötig. Danke an@ncramer11für die Meldung via GitHub.
23/07/2026:
Map Switcher Widget für Experience Builder 1.21 aktualisiert zur Behebung von TypeScript Editor Fehlern inklusive React-Komponententypisierung und unveränderlichen Konfigurationsimporten. Widget-Version wurde ebenfalls erhöht; neueste Version ist jetzt auf GitHub verfügbar.
17/07/2026:
Legenden-Systemüberarbeitung
- Legende liest jetzt das Live-Legend-Widget auf der Seite genau so wie der Benutzer es sieht: Layer-Reihenfolge, Gruppierungsschachtelung, Sichtbarkeit und Sublayer-Hierarchie mit einer Legend-Quelleinstellung zum Binden eines bestimmten Widgets oder automatischer Erkennung
- Hochauflösende Symbolik: Kartenservice-Muster werden vom REST-Legend bei 288 DPI abgerufen und kontextuell zu Legend-Zeilen zugeordnet; Vektor-Muster supersampled; Symbole zeichnen aspektwahr (Linienmuster bleiben dünn, Marker bleiben rund), keine verzerrten oder leeren Flächen mehr
- Neue angrenzende Panel-Platzierungen (rechts, links, unten): Der Kartenrahmen verkleinert sich zur Platzschaffung; Panel-Breite ist inhaltsgesteuert mit ausgewogenen Spalten; das Panel schneidet um Layout-Elemente wie Ecklogos herum; der gestaltete Rahmenrand umschließt Karte und Legende zusammen damit Pro-designte Kompositionen intakt bleiben
- Mehrseitige Legenden: Eine "Zusätzliche Seiten (nur PDF)" Platzierung paginiert die Legende über so viele volle Seiten wie nötig in voller Schriftgröße mit Fortsetzungsüberschriften sowie gleicher Blattgröße und Ausrichtung wie die Karten-Seite
- Intelligente Anpassung: Das Widget misst die tatsächliche Live-Legende und warnt mit Details ("87 Elemente; etwa 23 passen nicht"), wählt automatisch zusätzliche Seiten wenn Elemente wegfallen würden (Ein-Klick-Rücknahme; es macht sich selbst rückgängig wenn Layer deaktiviert werden) und markiert jede abgeschnittene Ausgabe in der Ergebniszeile
- Lange Beschriftungen umbrechen vor einem ehrlichen Auslassungszeichen auf drei Zeilen; Witwenkontrolle hält Überschriften mit ihren Elementen zusammen
- Legenden Ein/Aus-Umschalter für Admins pro Layout in den Einstellungen sowie für Endbenutzer im Widget plus Laufzeit-Platzierungsselektor
Maßstabsleisten
- Vollständiger 12-Stil-Katalog inklusive Alternierend (mit Häkchen), Linie mit Beschriftungen darunter sowie Mittelachsen-Maßstabslinie jeweils mit genauer Vorschaukachel
- Echte Pro-Dual-Maßstabsleisten: Doppel-alternierend und Doppel-hohl drucken immer zwei Messungen mit gemeinsamem Nullpunkt; zweite Einheit wird automatisch als natürliche Ergänzung gewählt (Meilen-Fuß, Meter-Kilometer) und kann überschrieben werden
- Kollisionssichere Einheitenbeschriftungen in jedem Stil sowie Einzel- und Dual-Modus
Benutzerfreundlichkeit und Arbeitsablauf
- Laufzeit-Benutzerüberschreibungen für Legendenplatzierung und Rastertyp durch Admin-Sichtbarkeitskontrollen gesteuert
- Autor- und Urheberrechtsfelder werden jetzt immer gedruckt in einer sauberen kartografischen Credits-Zeile im unteren Seitenrand wenn das Layout kein Textelement hat das sie verwendet
- 'Auf alle Layouts anwenden' Buttons für Übersicht-, Raster- und Legenden-Einstellungen; erneutes Importieren einer .pagx aktualisiert nun das passende Layout vor Ort und bewahrt dessen Einstellungen
- 'Live-Druckbereich-Vorschau' verfolgt das Legendenfeld, Nur-Karten-Modus sowie explizite Pixelmaße vor dem ersten Export
- 'Performance-Pass' (gleichzeitiger Legendenaufbau & Erfassung, Muster-Caching, parallele Extraktion) sowie WCAG-Barrierefreiheits-Pass über alle Steuerungen hinweg
09/07/2026:
+ Hinzugefügt + @ncramer11 + als Mitwirkender. Untenstehendes Problem gelöst.
+ Das Problem: + + setting.tsx + + erhält seine Dropdown-Listen (Formate, Nordpfeilstile, Maßstabsleistenstile & Einheiten) von + + runtime/lib/pdfRenderer.ts. Diese Datei importiert auch vier + + esri/* + + Module; diese werden also ins kompilierte Einstellungs-Bundle gezogen. Es scheint dass die Builder-Seite es momentan nicht immer schafft esri Module zu laden wenn das Einstellungsfenster geöffnet wird. Wenn das passiert schlägt das Einstellungsmodul fehl mit + + window.require ist keine Funktion + + in der Konsole; der Builder zeigt dann das Widget & Einstellungsfenster festgefahren am Ladeindikator an.
+ Commit 1: + + Verschiebt diese Dropdown-Listen in eine neue Datei + + src/printConstants.ts welche nichts von esri importiert.+ + pdfRenderer.ts + + exportiert sie erneut so dass sich am Laufzeitcode nichts ändert (widget.tsx + + bleibt unangetastet), & 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.