Skip To Content

Печать в веб-приложениях

В этом разделе

Существует несколько способов создания печатного документа из веб-приложения. По умолчанию ArcGIS for Server включает сервис геообработки, который называется PrintingTools. Веб-приложения вызывают сервис PrintingTools и в ответ получают изображение для печати. Также можно создать пользовательский сервис печати с собственными компоновками, отличающимися от компоновок по умолчанию, которые входят в состав PrintingTools. Если нужна расширенная функциональность печати, можно преобразовать с помощью скрипта Python веб-карту в документ ArcMap (MXD) и затем экспортировать MXD-файл в различные форматы печати.

Печать может быть настроена для Portal for ArcGIS, шаблонов веб-приложений, Web AppBuilder for ArcGIS и для приложений, созданных с помощью веб-API ArcGIS. См. Настроить портал для печати карт в Руководстве по администрированию портала для получения более подробной информации, в том числе о приложениях, создаваемых с помощью Web App Builder или шаблонов веб-приложений с опцией печати.

Сервис PrintingTools

PrintingTools – это настроенный сервис, находящийся в папке Utilities , который создает готовый к печати документ с помощью одной из заранее заданных компоновок карты. Сюда входят стандартные компоновки для размера бумаги 8,5 на 11 дюймов, 11 на 17 дюймов, формата A3 и A4 книжной и альбомной ориентации. Каждая компоновка содержит стрелку севера, масштабную линейку и масштаб, легенду, дату и заголовок. Сервис PrintingTools поддерживает следующие выходные форматы: PDF, PNG32, PNG8, JPG, GIF, EPS, SVG и SVGZ.

Сервис PrintingTools по умолчанию остановлен. Для запуска сервиса необходимо использовать ArcGIS for Desktop или ArcGIS Server Manager, если требуется поддержка рабочих процессов печати. После запуска сервиса PrintingTools, доступ к нему можно получить по URL-адресу следующего формата: https://webadaptor.domain.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task.

Веб-интерфейсы (APIs) ArcGIS предоставляют ряд виджетов, осуществляющих обмен данными с сервисом PrintingTools для получения карты в формате для печати. Достаточно просто указать URL-адрес сервиса PrintingTools, а остальную работу сделают виджеты. Более подробную информацию об использовании сервиса PrintingTools, развернутом на Portal for ArcGIS, см. Настройка портала для печати карт.

В случае кэшированного картографического сервиса разрешение, используемое сервисом PrintingTools (например, 96 DPI), может оказаться слишком низким для крупноформатной или высококачественной печати. Для печати с более высоким разрешением рекомендуется включить в кэшированном картографическом сервисе динамические слои. Это позволит сервису печати получить (через запрос на экспорт карты) изображения карты в желаемом разрешении (например, 300 DPI) вместо листов кэша низкого разрешения. Более подробно см. в разделе O динамических слоях.

Пользовательские сервисы печати

Если вы хотите использовать собственные компоновки, вы можете опубликовать свой сервис для печати веб-карт, наподобие PrintingTools. Можно настроить этот сервис так, чтобы он обращался к вашим папкам с документами ArcMap (.MXD), которые были подготовлены вами на основе различных компоновок карт.

Вы можете найти инструкции по публикации собственного сервиса для веб-печати (и его привязке к своей папке компоновки) в Учебном руководстве Публикация дополнительных сервисов печати. В руководстве также объясняется, что делать, если позже вы решите обновить компоновки. Обновлять компоновки можно по-разному в зависимости от того, зарегистрировали ли вы свою папку компоновок на сервере до публикации. Руководство содержит инструкции для обоих сценариев.

Обратите внимание, что в руководстве есть дополнительные советы по публикации и настройке пользовательских сервисов печати в Portal for ArcGIS. Такой сервис должен быть опубликован как синхронный сервис геообработки, и URL для него должен использовать протокол HTTPS для сообщения с порталом, чтобы его можно было настроить, как сервис печати на портале. Более подробную информацию об использовании пользовательского сервиса, развернутом на Portal for ArcGIS, см. Настройка портала для печати карт.

Пользовательский сервис печати может печатать компоновки, использующие несколько фреймов данных. Сервис лишь заменяет карту в активном фрейме данных. Однако если между фреймами данных есть какие-то отношения, такие как прямоугольник экстента, это отношение учитывается сервисом печати. Например, предположим, у вас есть компоновка с двумя фреймами данных: основная карта и обзорная карта. Обзорная карта включает прямоугольник экстента, показывающий текущий экстент основной карты. Перед использованием этой компоновки с пользовательским сервисом печати необходимо убедиться, что фрейм данных основной карты является активным фреймом данных. Когда веб-пользователь запрашивает карту с вашей компоновкой, основная карта будет показывать текущий вид веб-карты, а прямоугольник экстента обзорной карты будет отображать экстент основной карты, как и требуется.

Легенды

Независимо от использования на портале сервиса PrintingTools или пользовательского, легенды на бумаге будут выглядеть одинаково. При печати сервисов объектов, легенды в напечатанном документе будут содержать только записи для объектов, найденных на экстенте карты, тогда как легенды других типов сервисов будут содержать записи для всех объектов, независимо от экстента карты.

Дополнительные возможности печати с помощью Python

Если нужна расширенная функциональность печати, можно использовать вместо инструмента PrintingTools функцию ConvertWebMapToMapDocument из модуля Python arcpy.mapping, включенного в ArcGIS. При преобразовании веб-карты в документ карты все ее элементы сохраняются. Затем можно изменить документ карты перед печатью или экспортом в стандартные форматы, такие как PDF.

Функция ConvertWebMapToMapDocument обычно используется для замены слоев сервиса локальными векторными данными, создания атласов карт, управления внешним видом легенды и экспорта различных форматов с использованием расширенных опций.

Чтобы обеспечить доступ веб-приложения к скрипту Python, можно сделать скрипт доступным посредством сервиса геообработки ArcGIS Server. Дополнительные сведения см. в разделе Расширенные функции печати для веб-карт.