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