Web- печать\экспорт в pdf

0 голосов
спросил 10 Янв, 14 от Oleg1 (3,260 баллов) в категории Программные продукты Esri
Джентльмены, поделитесь практическим опытом настройки и оптимизации экспорта в pdf из веб-клиентов.
Намедни попробовал печатать в 10.1 через PrintingTools, установив плотность 600 для А4 - получается 3-5 минут. Раньше печатал в ArcIMS через опубликованный ArcMap Image service - такие же отчеты на том же железе в 1 минуту укладывались.
Можно ли как то улучшить производительность?
Спасибо.
П.С. Где находится help по печати я знаю.

18 Ответы

0 голосов
ответил 13 Янв, 14 от Grigoriy (127,020 баллов)
0 голосов
ответил 13 Янв, 14 от Oleg1 (3,260 баллов)
Вопрос был по практическому опыту. Какой реально реально плотности можно экспортировать документы, как оптимизировать процесс, чтобы пользователи не ждали по 5 мин на одном экспорте.
Кстати ср скорости печати PrintingTools и через Python?
0 голосов
ответил 13 Янв, 14 от Grigoriy (127,020 баллов)
Практический опыт в Ваших руках.
Всё зависит от того, что Вы пытаетесь распечатать и на каком железе.
Добавьте всё сервисы (слои) в ArcMap и постарайтесь напечатать - быстрее будет?
В этом случае перед печатью все данные ужебудут переданыклиенту.
С какой скоростью они будут переданы - зависит опять-таки от сервисов.
А в веб-приложении Вы просите отрендерить картинку для многих пользователей одновременно на сервере.
Вот и подбирайте сначала скорость печати для одного клиента (всех выгоните).
Потом когда устроит - можете запустить N экземпляров сервиса печати для N клиентов.
0 голосов
ответил 13 Янв, 14 от Oleg1 (3,260 баллов)
Ладно, спасибо. Просто хотел узнать как это решено у тех, у кого есть опыт и какие конкретные цифры по производительности они получают и пути оптимизации, если есть
А по поводу PrintingTools vs Python?
Кстати, в Web-приложениях на ADF .Net можно было распечатывать с атрибутами выбранных объектов. А как это можно сделать сейчас, особенно с учетом появления вложений\attachments? Ведь это в принципе стандартная задача формирования отчета по объекту с атрибутами. Есть ли примеры как это сделать?
Спасибо.
0 голосов
ответил 15 Янв, 14 от Grigoriy (127,020 баллов)
Если сервис только один, то быстрее будет работать простой экспорт карты.
Т.е. просто вызывать soap или rest вызов сервиса:
http://maps.rosreestr.ru/ArcGIS/rest/services/BaseMaps/BaseMap/MapServer/export?bbox=-28188880.1736116,-17719862.6381857,28348195.6268016,8822093.9052418
Но заголовки, легенду и прочее придется собирать самому на уровне веб-приложения.
На размер максимальной картинки "динамического" сервиса будут влиять его настройки в конфигурации сервиса.
Когда Вы печатаете через сервис печати, тосервис сначала "скачивает" все картинки со всех исходных сервисов, а потом пытается собрать для Вас окончательную картинку.
Посему не важно как Вы вызываете этот сервис, кнопкой или через Python - на скорость это не влияет.
Всё остальные "хотелки" придется программировать на уровне веб-приложения, если функции "готовых" вьюверов Вас не устраивают.
0 голосов
ответил 16 Янв, 14 от Oleg1 (3,260 баллов)
Спасибо.
По поводу примеров порядка реальных цифр (железо - количество сервисов-плотность ) ясности так и нет.
Т.е мои 4-5 мин на 2*Xeon RAM AGS 10.1sp1 с 9 сервисами, из которых 2 кэшированных, 4 - объектов, остальные динамические на 600 dpi А4 - это норма или неоптимизированный сервер?
По поводу "PrintingTools vs Python" я имел ввиду
http://resources.arcgis.com/ru/help/main/10.2/index.html#/na/01540000056t000000/ :
не надо отсылать на сервис PrintingTools. Вместо этого вы можете преобразовать JSON в файл .MXD. Чтобы сделать это, используйте функцию Python arcpy.mapping.ConvertWebMapToMapDocument. После этого можно использовать полученные файлы .MXD в других функциях arcpy.mapping, таких как ExportToPDF или ExportToPNG, чтобы подготовить карту для печати. Вы даже можете добавить карту в атлас перед печатью или заменить некоторые слои листов карты в документе карты своими собственными векторными слоями, в результате чего можно получить изображение более высокого разрешения.
Этот метод не даёт более быстрый результат ?
0 голосов
ответил 16 Янв, 14 от Grigoriy (127,020 баллов)

Олег
Т.е мои 4-5 мин на 2*Xeon RAM AGS 10.1sp1 с9 сервисами, из которых 2 кэшированных, 4 - объектов, остальные динамические на 600 dpiА4 - это норма или неоптимизированный сервер?

Этоскорее не "неоптимизированный сервер", а не неоптимизированные сервисы.
Т.е. Вы просите больше, чем сервис реально может выдать за требуемое время.
"По поводу "PrintingTools vs Python" - Вы можете реально проверить не запуская инструмент, а просто попробовать запустить печать из ArcMap со всеми нужными сервисами. Если результат устраивает, то можете использовать инструмент - он же просто подготовит документ по шаблону. А печать Вы будете выполнять на десктопе.
0 голосов
ответил 20 Янв, 14 от Oleg1 (3,260 баллов)
Попробовал экспортировать на печать послойно. Почему -то отдельный полигональный слой (гидрография, всего с одним большим полигоном-объектом) на динамич сервисе экспортируется 70-80 сек в А4, в то время как другие на сервисе объектов (~ 100 полиг объетов) за 3-4 сек.
Скорость прорисовки в веб-клиенте нормальная. Попробовал сервис пересоздать с файловой геобазы на ArcSDE - то же самое.
В режиме Map_Only скорость 2-3 сек.
В чём мб причина?
0 голосов
ответил 21 Янв, 14 от Grigoriy (127,020 баллов)
В Вашем случае пространственный индекс бесполезен.
При попадании на карту любого куска полигона он заново скачивается из базы полностью в память клиента для того чтобыможно было найти тот кусок, который нужно нарисовать.
Порежьте Ваш полигон любым доступным Вам способом.
Можете при желании сделать потом из этих кусков даже один мультиполигон (если хочется).
И будет Вам счастье. :)
0 голосов
ответил 21 Янв, 14 от Oleg1 (3,260 баллов)
Я сделал немного по другому и вот что обнаружил.
Полигональный слой входит в картогр. сервис. В принципе, в сервисе остался только один этот слой гидрографии. Так вот, если я подключаю в конструкторе сервис динамический, то при экспорте происходит торможение (даже при одном этом слое). Но если я подключаю слой Гидрографии как Feature layer (MS) , то скорость экспорта нормальная (~4-5 сек.)
К сожалению, есть еще аннотации (они у меня вынесены отдельным сервисом). Там так не получается - я могу их подключить только динамич сервисом целиком, sublayer почему-тоне проходит попробовать, они тормозят в проекте веб-приложения - длительность 3-4 мин.
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...