Web アプリケーションでの印刷
Web アプリケーションからのマップの印刷には複数の操作が必要です。これらの操作には、複数のサービスのマージ、レイヤの表示設定の管理、レイアウトへのアイテムの追加、マップにグラフィックスをかぶせる、などがあります。これらの操作を容易に行えるように、ArcGIS Server には PrintingTools というジオプロセシング サービスが用意されています。Web アプリケーションを開発するときには、PrintingTools サービスを呼び出して、そこから高カートグラフィック品質の印刷可能な画像を取得できます。高度な印刷の場合は、Python スクリプトを使用して Web マップを ArcMap ドキュメント(MXD)に変換した後、MXD を印刷用のさまざまな形式にエクスポートすることができます。
PrintingTools サービス
PrintingTools は Utilities フォルダにある事前に設定されたサービスです。このサービスはデフォルトでは停止しています。印刷ワークフローをサポートしたい場合は、ArcGIS Desktop または ArcGIS Server Manager を使用してサービスを開始する必要があります。
ArcGIS Web Mapping API は、PrintingTools サービスと通信して印刷可能なマップを取得できるウィジェットを備えています。PrintingTools サービスの URL を指定すると、ウィジェットにより残りの作業が行われます。
ArcGIS Web Mapping API の外部で PrintingTools サービスを呼び出す必要がある場合、あるいは、このサービスの基盤である Web マップのエクスポート(Export Web Map)ツールを ArcGIS Desktop または Python スクリプトから実行したい場合は、Esri ExportWebMap 仕様に従ってマップの現在の状態の JSON(JavaScript Object Notation)定義を指定する必要があります。ArcGIS Web Mapping API を使用している場合は、これは不要な、高度なワークフローです。
PrintingTools には、選択できる事前に定義されたマップ レイアウトのセットが用意されています。独自のマップ レイアウトを使用したい場合は、PrintingTools と同様の Web マップ印刷用の独自のサービスを公開し、レイアウトの独自のフォルダで参照できます。詳細については、「印刷用の独自レイアウトの使用」と「チュートリアル: 印刷用サービスの公開」をご参照ください。
マップ サービスがキャッシュされている場合に PrintingTools サービスで使用される解像度は、大判印刷や高品質印刷用としては低すぎる場合があります(96 DPI など)。高解像度で印刷する場合には、キャッシュされているマップ サービスでダイナミック レイヤを有効にすることを推奨します。これにより、低解像度のタイルではなく、目的の解像度(300 DPI など)のマップ イメージを印刷サービスで取得できるようになります(マップ エクスポート リクエストを使用する)。詳細については、「ダイナミック レイヤについて」をご参照ください。
Python を使用した高度な印刷
高度な印刷の場合は、PrintingTools を一切使用せず、その代わりに ArcGIS に付属の Python arcpy.mapping モジュールに含まれている ConvertWebMapToMapDocument 関数を使用できます。ドキュメントを変換すると、マップ ドキュメントに完全な Web マップが含まれます。最終的に印刷または PDF などの共通の形式にエクスポートする前に、マップ ドキュメントにさらに変更を加えることができます。
通常、ConvertWebMapToMapDocument 関数を使用すると、ローカル ベクタ データへのサービス レイヤの変換、マップ ブックの作成、凡例の外観の制御、高度なオプションでのさまざまな形式のエクスポートなどの処理を実行できます。
Python スクリプトを Web アプリケーションで使用できるようにするには、ArcGIS Server ジオプロセシング サービスを介してスクリプトを公開できます。詳細については、「Web マップの高度な印刷」をご参照ください。