ArcGIS Web API 中的 PrintingTools 服务及其客户端打印微件用于基本打印。在打印工作流中,如果 Web 地图需要使用高级选项进行修改或导出,请使用 Python arcpy.mapping 模块中的 ConvertWebMapToMapDocument 函数。
使用 Python 将 Web 地图转换为地图文档
ArcGIS 中的 Web 地图打印取决于将要表示为 JSON(即 JavaScript 对象表示法)的 Web 地图的能力。Esri 已创建 ExportWebMap 规范,该规范定义如何使用打印范围和图层信息将为 Web 地图构建 JSON 表达式。ArcGIS Web API 能够读取您当前的 Web 地图并为您制作 JSON 表达式。在简单打印情况下,ArcGIS Server 的 PrintingTools 服务读取 JSON 并返回可打印的地图图像。
在高级打印情况下,不必将 Web 地图 JSON 发送至 PrintingTools 服务。相反,您可以将 JSON 转换为 MXD。要执行此操作,请使用 Python 函数 arcpy.mapping.ConvertWebMapToMapDocument。然后可以将生成的 MXD 用于其他 arcpy.mapping 函数(如 ExportToPDF 或 ExportToPNG),以准备要打印的地图。您甚至可以选择在打印地图前将其添加至地图册,或使用您自己的矢量图层切换地图中的一些服务图层。ConvertWebMapToMapDocument 参考主题中介绍了这些技术。
也有一些教程演示整个高级导出和打印工作流程。它们介绍如何创作过渡模板地图文档、创作 Python 脚本、创建地理处理服务以及创建 Web 应用程序:
从网站上调用您的脚本
写入用于打印的 arcpy.mapping 脚本后,如何从 Web 应用程序中使用该脚本?ArcGIS Server 提供了各种地理处理服务,允许将您的脚本、工具和模型显示为 Web。这样便可以从 ArcGIS Web API 中轻松地调用它们。
如果您已经获取了一个为打印操作而准备地图的 Python 脚本后,可以选择在地理处理脚本工具中封装该脚本。尝试运行您的工具,然后将结果作为 ArcGIS Server 地理处理服务发布出来。
开发此类地理处理脚本工具最简单的方法是确保它所显示的参数与开箱即用的 PrintingTools 服务的参数相同,或为其子集。输入的 JSON 参数是所需最小要求参数。如果您这样设计您的服务,ArcGIS Web 制图 API 和 Web 查看器中的打印微件将能够使用您的服务,而无需通过您获取自定义编码。