PrintingTools サービスとその ArcGIS Web API のクライアント印刷ウィジェットは、基本的な印刷を目的としています。高度なオプションを使用して Web マップを変更またはエクスポートする必要がある印刷ワークフローでは、Python の arcpy.mapping モジュールの ConvertWebMapToMapDocument 関数を使用します。
Python を使用した Web マップのマップ ドキュメントへの変換
ArcGIS での Web マップの印刷は、JSON または JavaScript Object Notation として表される Web マップの機能を利用しています。Esri が作成した ExportWebMap 仕様は、印刷の範囲とレイヤー情報によって Web マップを JSON として構築する方法を定義しています。ArcGIS Web API は現在の Web マップを読み取り、JSON を作成できます。簡単な印刷のシナリオでは、ArcGIS Server PrintingTools サービスが JSON を読み取り、印刷可能なマップ イメージを返します。
高度な印刷のシナリオでは、Web マップ JSON を PrintingTools サービスに送る必要がありません。代わりに、JSON を MXD に変換できます。そのためには、Python 関数の arcpy.mapping.ConvertWebMapToMapDocument を使用します。変換された MXD を他の ExportToPDF や ExportToPNG などの arcpy.mapping 関数で使用して、マップを印刷できるようにします。印刷する前にマップをマップ ブックに追加したり、マップ内の一部のサービス レイヤーを独自のベクター レイヤーに切り替えたりできます。これらの手法の詳細については、ConvertWebMapToMapDocument のリファレンス トピックをご参照ください。
高度なエクスポートと印刷のワークフロー全体を説明したチュートリアルもあります。それらのチュートリアルでは、ステージングされたテンプレート マップ ドキュメントの作成方法、Python スクリプトの作成方法、ジオプロセシング サービスの作成方法、Web アプリケーションの作成方法を説明しています。
Web からのスクリプトの呼び出し
印刷用に作成した arcpy.mapping スクリプトは、Web アプリケーションでどのように使用するのでしょうか?ArcGIS Server は、スクリプト、ツール、モデルを Web サービスとして公開できるジオプロセシング サービスを提供しています。これにより、ArcGIS Web API からそれらを簡単に呼び出すことができます。
印刷のためにマップを準備する Python スクリプトが用意できたら、それをジオプロセシング スクリプト ツールにカプセル化することができます。ツールのテストを実行して、その結果を ArcGIS Server ジオプロセシング サービスとして公開します。
この種のジオプロセシング スクリプト ツールを作成する最も簡単な方法は、PrintingTools サービス、またはそのサブセットのデフォルトと同じパラメーターを公開することです。入力 JSON パラメーターは、最低限必要なパラメーターです。この方法でサービスを設計した場合、ArcGIS Web マッピング API や Web ビューアーの印刷ウィジェットは、カスタム コーディングなしにそのサービスを使用できます。