Сервис PrintingTools и его клиентские виджеты печати в веб-интерфейсах API для ArcGIS предназначены для стандартной печати. В процессах, где для печати требуется изменить или экспортировать веб-карту с помощью дополнительных опций, используйте функцию преобразования в модуле Python arcpy: ConvertWebMapToMapDocument для ArcMap и ConvertWebMapToArcGISProject для ArcGIS Pro.
Печать веб-карт в ArcGIS зависит от способности веб-карты быть представленной в формате JSON (текстовый формат обмена данными на основе JavaScript). Компания Esri создала спецификацию ExportWebMap, которая определяет, как веб-карта может быть представлена в формате JSON с экстентом и информацией о слоях для печати. Веб-интерфейсы API for ArcGIS могут прочитать вашу текущую веб-карту и создать представление JSON на ее основе. В простом сценарии печати сервис ArcGIS Server PrintingTools считывает объект JSON и возвращает изображение карты, которое можно распечатать.
В более сложных сценариях печати представление JSON для веб-карты не надо отсылать на сервис PrintingTools. Вместо этого вы можете преобразовать JSON в документ ArcMap (.mxd) или проект ArcGIS Pro (.aprx).
Конвертирование веб-карты в документ карты ArcMap с помощью Python
Чтобы конвертировать JSON веб-карты в документ карты (.mxd), используйте функцию ConvertWebMapToMapDocument. После преобразования веб-карты в документ карты в нее переходят все элементы веб-карты. Затем можно изменить документ перед печатью или экспортом в стандартные форматы, с помощью таких функций, как, например, ExportToPDF или ExportToPNG. Вы даже можете добавить карту в атлас перед печатью или заменить некоторые слои сервиса в документе карты своими собственными векторными слоями.
Полный процесс экспортирования и печати представлен ещё в нескольких руководствах Esri. Они объясняют, как создавать промежуточный шаблон документа карты, скрипт Python, сервис геообработки и веб-приложение:
Конвертирование веб-карты в проект ArcGIS Pro с помощью Python
Чтобы конвертировать JSON веб-карты в проект ArcGIS Pro (.aprx), используйте функцию ConvertWebMapToArcGISProject. После преобразования веб-карты в проект переходят все элементы веб-карты. Затем можно изменить проект перед печатью или экспортом в стандартные форматы, который можно выполнить с помощью других функций Python. Как и в ArcMap, вы можете добавить карту в атлас перед печатью или заменить некоторые слои сервиса в документе карты своими собственными векторными слоями.
Более подробное описание, сценарии работы и примеры кода см. в статье Печать веб-карт с помощью arcpy.mp, где поясняется, как подготовить шаблоны компоновок, скрипт Python для веб-карты и создать веб-инструменты и веб-приложения.
Вызов скриптов по сети Интернет
После написания вами скрипта печати arcpy ArcGIS Enterprise предоставляет вам сервисы геообработки, позволяющие разворачивать ваши скрипты, инструменты и модули в качестве веб-сервисов. Это облегчает их вызов из веб-интерфейсов API for ArcGIS.
Вы можете инкапсулировать свой скрипт печати Python в инструмент-скрипт геообработки. Произведите тестовый запуск своего инструмента и опубликуйте результат в виде сервиса геообработки ArcGIS Enterprise.
Самый простой подход при разработке данного типа инструмента-скрипта геообработки – это убедиться в том, что в нем имеются те же параметры, что и в готовом сервисе PrintingTools или его поднаборе. Требуется наличие, как минимум, входного параметра JSON. Если вы разработаете свой сервис таким образом, виджеты печати ArcGIS Web AppBuilder и задачи печати веб-интерфейсов программирования (API) картографического веб-приложения ArcGIS и веб-вьюеры смогут использовать ваш сервис без необходимости написания дополнительного кода.