ArcGIS For Server10.1新特性之一就是服务器端打印,这个打印功能使用起来非常的方便,因为它是一个现成的GP服务,使用的时候只要输入相应的地图,地图范围,模板的名称等,就可以按需打印出你需要的地图。下面我们来看一下从制作模版到发布服务及服务调用的整个流程吧:
1、自己定义一个打印模板,如下图是布局视图:
将模版保存到C:\Program Files (x86)\ArcGIS\Desktop10.1\Templates\ExportWebMapTemplates(当然你也可以保存到其他路径下,在发布服务的时候你可以指定你自己的路径)
2、在ArcToolBox中打开Export Web Map工具:
输入参数:Web Map as JSON为空;Output File为默认参数;Format可以自己输入;Layout Templates Folder(optional)选择一个模板文件夹(这里选择ArcGIS安装目录的模板文件夹),然后Layout Templates (optional)就可以选择一个默认的模板了
点击OK,打开菜单栏Geoprocessing/Results,执行完成后选中Export Web Map右键Share as Geoprocessing services
下一步、下一步:Analyse后如果没有错误,直接点击Publish发布:
ArcCatalog中查看如下:
3、服务发布好后,可一下在Flex中如何调用一把:ArcGIS Flex API3.0也增加了对该打印服务的支持:
代码如下:print.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:esri="" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import mx.managers.PopUpManager; private function onclick(event:MouseEvent):void { var popWin:printForm = printForm(PopUpManager.createPopUp(this,printForm,false)); popWin.printTask.getServiceInfo();//调用 打印 GP,获取模版和格式参数 popWin.map = this.myMap; } ]]> </fx:Script> <esri:Map id="myMap"> <esri:ArcGISDynamicMapServiceLayer url=":6080/arcgis/rest/services/routTest2/MapServer"/> </esri:Map> <mx:Button id="button" x="409" y="10" label="打印" click="onclick(event)"/> </s:Application>