概要
このウィジェットを使うと、印刷サービスなしでArcGIS Proスタイルの地図印刷をArcGIS Experience Builderに取り込めます。ArcGIS Proからレイアウトをレイアウトファイル(.pagx)として共有し、ウィジェットの設定で一度インポートすると、ウィジェットがブラウザー上でライブマップに合わせてページを再構築します。マップフレーム、タイトルとテキスト、北矢印、縮尺記号、凡例、画像、線が含まれます。
https://github.com/brianmcleer/print-advanced-widget
注:ウィジェットの設定でArcGIS Proのレイアウトファイル(.pagx)をインポートして、ページを定義してください。サーバー側のExportWebMapサービスを使用したい場合は、オプションでEsri印刷サービスを利用することもできます。
このウィジェットでできること
- ArcGIS Proの.pagxレイアウトを、実際のProの出力に合わせてブラウザー上で再現します(マップフレーム、テキスト、線、北矢印、縮尺記号、画像、凡例)。
- PDFとSVGを真のベクター形式で出力できるほか、PNG32、PNG8、JPG、GIF、TIFF、EPSにも対応。印刷サービスは不要です。
- サーバー側のレイアウト向けに、オプションでEsri印刷サービス(ExportWebMap URL)を利用でき、AIXも出力できます。
- マップ上に印刷範囲のプレビューを表示するので、エクスポート前に印刷内容を確認できます。現在の縮尺を維持する、現在の範囲を維持する、縮尺を固定する、一覧から選ぶ、のいずれかを選択でき、ロックの切り替えも可能です。
- 北矢印は12種類、縮尺記号は9種類のスタイルをサムネイルで表示。レイアウトの既定値も選択できます。
- マップとは異なる投影法で印刷するための出力座標系(WKID)。
- 作成者、著作権、帰属表示のトークン。凡例のみ、またはマップのみのエクスポート。Google Fontsのインポートを含む、URL指定のカスタムフォント。
- 最近のエクスポート一覧、および設定全体のXMLインポートとエクスポート。
- 既定の設定、利用可能な形式、エンドユーザーに表示する実行時コントロールを管理者が制御できます。
変更履歴:
2026/10/15:
エクスポート一覧を刷新しました。完了したファイルには、時刻、ページ数、サイズとともに「準備完了」と表示されます。名前をクリックすると新しいタブで開き、「保存」をクリックすると再度ダウンロードできます。技術情報やメモは「詳細」ボタンから確認できるため、一覧はすっきりしたままです。印刷パネルを閉じても、アプリを開いている間はファイルが一覧に残ります。
2026/10/12: ウィジェットがアプリの言語(?locale=、言語切り替え、ArcGISプロフィール、またはブラウザーの設定)に対応しました。ヘルプガイドも含め、39言語で利用できます。
独自のカスタムウィジェットをお持ちですか? 同じ無料ツールのexb-i18n-kitを使えば、コマンドひとつで翻訳できます:localize。各フレーズがどのように補完されるかをご紹介します:
- まずEsriの翻訳を使用。 Experience Builderのインストール環境に含まれる翻訳を読み込むため、「ズーム」などのフレーズにはEsriのウィジェットと同じ表現が使われます。
- 標準用語。フィートやエーカーなどの単位名には、ブラウザーでも使われているUnicode CLDRのデータを使用します。
- 共有翻訳メモリ。 残りの語句には、オープンソース翻訳ツールLibreTranslateを使って作成した共有辞書と、ボスニア語、クロアチア語、セルビア語向けのHelsinki-NLPのOpus-MTモデルを利用します。GitHub上で無料で動作するため、APIキーやアカウントは必要ありません。
- 組み込み。 ウィジェットの翻訳ファイル以外にハードコードされた英語(既定の設定やヘルプガイドなど)も検出し、翻訳されるように組み込みます。
手作業で修正した翻訳は常に機械翻訳より優先され、上書きされることはありません。一部は機械翻訳のため、不自然な表現を見つけたら、こちらに返信してよりよい訳をお知らせください。
2026/09/24:
- ページプレビューを「マップタイトル」の下に配置しました。パネルは上から順に、レイアウトの選択、タイトルの入力、ページの確認、エクスポートという流れになっています。
- 詳細オプションを「印刷範囲」「マップシリーズ」「マップ上」「ページテキスト」「スタイル」「出力」の6つのカードに整理しました。各カードは見出しから開閉でき、選択内容を記憶します。閉じたときには「PDF、300 DPI」や「凡例、グリッド」などの概要が1行で表示されます。
- マップシリーズはシンプルな切り替え式で、有効にすると形式が自動的にPDFに設定されます。
- 設定も同じ順序に並んでいるため、管理者の設定とユーザーに表示される内容が一致します。管理者は、最初に開いておくカードも選択できます。
2026/09/23:
- GeoPDF。PDFをAvenzaまたはField Mapsで開くと、青い現在地ドットが表示されます。GeoTIFF、ワールドファイル、KMZにも対応しています。
- PDFレイヤー。Acrobatでマップ、グリッド、凡例、テキストの表示・非表示を切り替えられます。
- ページのライブプレビュー。パンしながら、印刷ページ全体を確認できます。
- ベクターレイヤー。ピクセルではなく、くっきりした線と検索可能なラベルで出力します(試験的機能)。
- データ駆動型ページ。区画、公園、プロジェクトごとに1ページを作成します。グループレイヤーやフィルターにも対応し、地物名をタイトルに追加します。
- マップシリーズの進行状況。「12ページ中3ページ目」のように残り時間とともに表示し、「キャンセル」ボタンも備えています。
- ページ数の上限。ブラウザー上で動作するため、管理者が警告の表示条件と最大ページ数を設定できます。
- グリッド:ウィジェット内のグリッド線とフォントの色、および設定の既定色を変更できます。
2026/09/09:
- 選択した地物が印刷されるようになりました。マップ上で区画などの地物を選択すると、マップ上にシアンの輪郭線で印刷されます。ウィジェットは、マップのレイヤーを共有しつつマップビューとは別のオフスクリーンビューにマップを取り込みます。選択ハイライトはこのビュー上に表示されるため、以前は他のグラフィックがすべて印刷されていても、選択した区画だけが印刷されないことがありました。選択地物はベクターとしてページに描画されるようになったため、PDFとSVGでも鮮明に印刷され、ライブマップには一切変更を加えません。エクスポートパネルに「選択した地物」の切り替えが追加され、既定でオンになっています。ウィジェットの設定にも対応する既定値があります。
- ウィジェット内ヘルプガイド。ウィジェットのヘッダーにある「ヘルプ」ボタンから、簡潔で検索可能な平易な言葉のガイドを開けます。開始するための3つの手順、各オプションの説明、選ぶべきファイル形式、問題が起きたときの確認事項を掲載しています。実際にアプリで有効になっている機能のヘルプだけが表示されるため、レイアウトで使っていない凡例やマップシリーズについて読む必要はありません。
2026/09/04:
ベータ版を終了し、サイトで本番ウィジェットとして使えるようにしました。以下の機能を追加しました:
- マップのみのエクスポートにGoogle Earth(KMZ)出力を追加
- ジオリファレンス付きラスタ出力を追加:TIFFでは真のGeoTIFF、PNG、JPG、GIFではワールドファイルと
.prjを出力 - 座標系のサポートを固定リスト方式から汎用方式に変更し、
.prj出力、GeoTIFFキー、座標系名トークンに対応 - ArcGIS Proの動的テキストを全面的にサポート。時刻、サービスレイヤーのクレジット、空間参照プロパティ、マップフレーム座標、マップシリーズのページトークンに対応
- 縮尺に応じた凡例フィルターを追加
- マップシリーズでは各ページに凡例パネルを印刷し、有効なフレームに合わせてグリッドを再生成
- 設定XMLのインポートとエクスポートで、グリッド、概観図、凡例の既定値も保持
- 高DPIでのシンボル、テキスト、線のサイズを修正
- 縮尺が大きい場合に画像が正しい縮尺で印刷されない問題を修正
- マップサービスグループの凡例スウォッチが欠落する問題を修正
- 凡例の左下・右下への配置を修正
- 「すべてのレイアウトに適用」を修正
- レイアウト変更時に凡例の切り替えが更新されない問題を修正
- 凡例で次の設定に対応:
.pagxの列数とタイトルの表示・非表示
2026/08/12:
Experience Builder 1.21で凡例アイテムが灰色の四角として描画される問題を修正しました。新しいArcGIS Maps SDKでは、LegendウィジェットがシャドウDOMの背後に描画され、印刷データの取り込み時にシンボルスウォッチが取得できなくなっていました。今回、スウォッチの抽出がシャドウDOMの内部にも対応し、新しいarcgis-legendコンポーネントをサポートしました。また、抽出が不十分な場合はレイヤーのレンダラーからシンボルを自動生成するようになりました。マップやレイアウトの変更は不要です。GitHubで報告してくださった@ncramer11さん、ありがとうございます。
2026/07/23:
Experience Builder 1.21向けにMap Switcherウィジェットを更新し、Reactコンポーネントの型指定や変更不可な設定のインポートなど、TypeScriptエディターのエラーを解消しました。ウィジェットのバージョンも更新し、最新リリースをGitHubで公開しました。
2026/07/17:
凡例システムを全面刷新
- ページ上のライブLegendウィジェットを読み取り、レイヤーの順序、グループの階層、表示状態、サブレイヤーの階層など、ユーザーに見えている内容をそのまま反映します。特定のウィジェットを指定するか自動検出するかを、凡例ソース設定で選べます。
- 高解像度のシンボル表現:マップサービスのスウォッチはREST凡例から288 DPIで取得し、凡例の行に合わせて照合します。ベクタースウォッチはスーパーサンプリングされ、シンボルは縦横比を保って描画されます(線のスウォッチは細く、マーカーは丸いまま)。引き伸ばしや空白のパッチは発生しません。
- 隣接パネルの新しい配置(右、左、下):マップフレームが縮小してスペースを確保します。パネル幅はコンテンツに合わせ、列のバランスも調整されます。パネルは隅のロゴなどのレイアウト要素を避けて配置され、作成済みのフレーム枠はマップと凡例をまとめて囲むため、Proで設計したレイアウトを維持できます。
- 複数ページの凡例:「追加ページ(PDFのみ)」を選ぶと、凡例を必要な数の用紙にページ分割して、フルサイズのフォントで出力します。続きの見出しが付き、マップページと同じ用紙サイズと向きが使われます。
- スマートな収まり判定:実際の凡例をその場で測定し、「87項目中、約23項目が収まりません」のように具体的な警告を表示します。項目が欠落する場合は追加ページを自動的に既定にし(ワンクリックで元に戻せます。レイヤーをオフにすると自動で元に戻ります)、結果行ではエクスポート内容の切り詰めも通知します。
- 長いラベルは、適切な省略記号を付ける前に最大3行まで折り返されます。孤立行の制御により、見出しが対応する項目と分かれないようにします。
- 設定では管理者がレイアウトごとに凡例のオン・オフを切り替えられ、ウィジェットではエンドユーザーが切り替えられます。実行時に配置を選ぶ機能もあります。
縮尺記号
- 12種類すべてのスタイルを収録。目盛り付き交互表示、ラベルを下に配置した線、中央軸の縮尺線などに対応し、それぞれ正確なプレビューを表示します。
- Proと同等のデュアル縮尺記号:二重交互表示と二重中空は、ゼロ地点を共有する2つの測定値を常に印刷します。2つ目の単位は自然な組み合わせ(マイルとフィート、メートルとキロメートル)から自動選択され、変更も可能です。
- すべてのスタイルで、単位ラベルが重ならないように調整されます。単位表示と二重表示の両方に対応します。
使いやすさとワークフロー
- 凡例の配置とグリッドの種類を実行時にユーザーが変更できます。管理者の表示制御で利用可否を設定できます。
- レイアウトにそれらを表示するテキスト要素がない場合も、作成者と著作権の情報をページ下部の余白に整った地図情報のクレジット行として常に印刷します。
- 概観図、グリッド、凡例の設定に「すべてのレイアウトに適用」ボタンを追加。.pagxを再インポートすると、該当するレイアウトがその場で更新され、設定は保持されます。
- 初回エクスポート前に、凡例パネル、地図のみモード、明示的なピクセル寸法を反映する印刷範囲のライブプレビュー
- パフォーマンス改善(凡例の作成とキャプチャの並行処理、スウォッチのキャッシュ、抽出の並列処理)およびすべてのコントロールに対するWCAGアクセシビリティ対応
2026/07/09:
追加:@ncramer11を貢献者として追加。以下の問題を解決しました。
問題: setting.tsx は、ドロップダウンリスト(形式、北矢印のスタイル、縮尺記号のスタイルと単位)を次から取得しています。 runtime/lib/pdfRenderer.ts。このファイルは4つの esri/* モジュールもインポートするため、コンパイル済み設定バンドルにこれらが含まれてしまいます。設定パネルを開いた時点で、ビルダーページがesriモジュールを常に読み込めるとは限らないようです。その場合、設定モジュールはコンソールに window.require is not a function というエラーを出して失敗し、ビルダーではウィジェットと設定パネルが読み込み中のスピナーを表示したままになります。
コミット1: ドロップダウンリストを、新しいファイル src/printConstants.tsに移動します。このファイルはesriから何もインポートしません。 pdfRenderer.ts から再エクスポートするため、ランタイムコードは一切変更されません(widget.tsx には変更なし)。また、 setting.tsx は新しいファイルからインポートするようになりました。これにより、設定バンドルはesriを参照しなくなり、正常に読み込まれます。サイズも約3.3 MBから約350 KBに縮小しました。esriに依存しない状態を保つ必要がある理由を説明するコメントを printConstants.ts に追加しました。
コミット2: 7つの indentLevel={1} プロパティ( SettingRow に指定)を indentedに置き換えます。エディターでは indentLevel がExB 1.20の型定義に含まれていないため、警告が表示されます。動作に違いはないので、必要であればこちらは省略して構いません。
- 新機能:概要インセットマップ。地図枠の任意の隅に範囲インジケーター付きの縮小表示マップを表示できます。ウィジェットの設定だけで完結し、Proのレイアウトを変更する必要はありません。
- 新機能:ArcGIS Proスタイルのグリッドと経緯線。経緯線(緯度・経度。あらゆる座標系で動作)、計測グリッド(地図単位)、またはインデックス付き参照グリッド(A-1)を選べます。線のスタイル、色、間隔、ラベルを設定でき、ラベルには画像上でも読みやすいよう、半球を示す接尾辞と縁取りが付きます。
- 新機能:実行時の切り替え機能により、印刷ごとにインセットとグリッドの表示・非表示を切り替えられます。
- 改善:地図のキャプチャ上限がグラフィックカードに応じて自動設定されるようになり、大きなレイアウトもより鮮明に印刷できます。エクスポートの進捗表示に実効DPIが表示されます。
- 改善:帰属表示テキスト内の長いURLが、ページからはみ出さずに折り返されるようになりました。
- 修正:都市スケールでマイルを使用するレイアウトにおいて、「1インチ=0マイル」と表示される問題。
2026/07/02:
ベータ版の初回リリース。GitHubに公開しました。安定版とする前にフィードバックをお待ちしています。