#ArcGIS for Server 自定义打印两种方法

友好阅读版本: http://gishub.info/2013/09/17/printingtools/

## 前言
使用web打印会遇到中文乱码,这是因为使用的打印模板中,配图要素的字体选择了非中文友好字体,如下图所示。模板字体改为中文友好字体,再执行下面的自定义模板步骤
![](http://7xovpf.com1.z0.glb.clouddn.com/printingTools1.png)

安装完arcgis server 在站点的utilities 目录下有printing tools的gp服务,其下面有个export web map操作,通过这个gp服务可以实现对web 地图的打印。但是经常会遇到用户反馈有需求,需要自己自定义打印模板,怎么实现。

## 方法一:
安装完arcgis sever后,会在desktop的工具集中添加server工具箱,其中有export web map工具,通过该工具可以创建和发布打印web地图的gp服务,该服务和站点中默认的打印gp服务一样。通过对该gp服务指定自定义模板即可。

步骤如下:

1. 准备地图模板,这里制定了jmb custom.mxd 的地图打印模板
![](http://7xovpf.com1.z0.glb.clouddn.com/printingTools2.png)

2. 在catalog中执行export web map操作,并将gp执行的结果发布成gp 服务

tips:执行的时候指定自定义模板所在的文件夹,也可以指定模板。如果指定了模板,则gp服务的模板的输入参数具有默认值
![](http://7xovpf.com1.z0.glb.clouddn.com/printingTools3.png)

其中web map as json 可以为空,这里选择了默认的自己自定义的模板为默认模板。

3. 发布gp服务,设置参数,由于发布gp服务的时候,模板文件夹下具有多个模板,则layout template 输入参数类型为choice list
![](http://7xovpf.com1.z0.glb.clouddn.com/printingTools4.png)

tips:发布gp服务时,可以将模板文件夹注册给服务,则模板可以不用拷贝到服务器

Step 4: gp服务调用
![](http://7xovpf.com1.z0.glb.clouddn.com/printingTools5.png)

具体rest中的参数怎么填写,参考export web map 规范,链接如下:

http://resources.arcgis.com/zh-CN/help/main/10.1/index.html#//0154000004w8000000

## 方法二:

~update 2016-06-13

看完方法一,是不是有种累觉不爱的感觉。方法二就简单的很了。

ArcGIS for Server的打印服务的模板都在其安装目录下存储着。默认路径如下:
> C:\Program Files\ArcGIS\Server\Templates\ExportWebMapTemplates

只需要将模板拷贝到该目录即可。是不是很简单的说?

Printing tools 自定义模板打印的实现的更多相关文章

  1. SublimeText插件Emmet的自定义模板

    在前端界,作为快速生成代码的Emmet插件相当给力.最近在学bootstrap,需要频繁生成html头文件,我就想着自定义模板.国内只有基础教程,只好自己读英文文档了. Emmet国内基础教程地址: ...

  2. vue-element-admin实现模板打印

    一.简介 模板打印也叫”套打“,是业务系统和后台管理系统中的常用功能,B/S系统中实现”套打“比较繁琐,所以很多的B/S系统中的打印功能一直使用的是浏览器打印,很少实现模板打印.本篇将介绍在Vue E ...

  3. [Python自学] day-21 (1) (请求信息、html模板继承与导入、自定义模板函数、自定义分页)

    一.路由映射的参数 1.映射的一般使用 在app/urls.py中,我们定义URL与视图函数之间的映射: from django.contrib import admin from django.ur ...

  4. Django自定义模板

    定义simple_tag步骤 一.创建templatetags文件 首先在app下创建templatetags文件:名字不许叫这个,不能改变. 二.在文件中创建一个py文件 文件名自定义 三.在创建的 ...

  5. 学习CodeIgniter框架之旅(一)自定义模板目录

    在常用的框架本身都已经做好了分层和目录结构,但这在很多时候不满足项目的需求甚至在某些情况下变得不合理,因此很多时候需要自定义目录结构,在此就看看如果在CodeIgniter框架中自定义模板目录: 在C ...

  6. .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(三)

    阅读目录: 7.HtmlHelper.HtmlHelper<T>中的ViewModel的类型推断 8.控制ViewModel中的某个属性的呈现(使用PartialView部分视图细粒度控制 ...

  7. 使用requireJS,backboneJS,和underscoreJS完成自定义模板封装

    使用requireJS,backboneJS,和underscoreJS完成自定义模板封装 原来的代码 当我们进行一个列表的数据填充的时候,是这样做的: //获取美食列表 function getFo ...

  8. DISCUZ 自定义模板

    DISCUZ 自定义模板 模板安装和维护 安装新模板 将模板template打包放在对应目录:template/ 后台 -> 界面 -> 风格管理 , 安装模板 后台 -> 界面 - ...

  9. 谈谈yii2-gii如何自定义模板

    作者:白狼 出处:http://www.manks.top/article/yii2_gii_custom_template本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位 ...

随机推荐

  1. jquery 事件:2

    unbind(type [,data])     //data是要移除的函数 $('#btn').unbind("click"); //移除click $('#btn').unbi ...

  2. 使用 Google 高级搜索的一些技巧

      一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发明,Google Inc. 于 ...

  3. 10、驱动中的阻塞与非阻塞IO

        阻塞,就是在获取资源的时候,不能获取到,那么就会将当前的进程挂起(睡眠,也就是将当前进程从调度器拿走了,不会调度当前进程),直到满足条件为止再进行操作.相反,非阻塞,就是即使不能获取到资源,非 ...

  4. go实现定时功能两种方法

    1:timer 学习自:https://studygolang.com/articles/2479 timer1 := time.NewTimer(time.Second * 2) //此处在等待ch ...

  5. Webpack 的 HtmlWebpackPlugin 如何控制某个 chunks 的 inject 位置?

    https://segmentfault.com/q/1010000006591131 通过修改 HtmlWebpackPlugin 源码实现了 修改后的配置: new HtmlWebpackPlug ...

  6. CentOS设置程序开机自启动的方法

    转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. ...

  7. 10张思维导图带你学习【Java​Script】

    思维导图小tips:思维导图又叫心智图.是表达发射性思维的有效的图形思维工具 ,它简单却又极其有效,是一种革命性的思维工具.思维导图运用图文并重的技巧.把各级主题的关系用相互隶属与相关的层级图表现出来 ...

  8. mac os x 使用scp取代sz rz

    在windows下,能够通过secureCRT的sz来下载文件,而用rz来上传文件.在unix/linux下则不必.由于scp命令能够完毕这项目工作. sz file替代方案为:scp usernam ...

  9. gtx官方example仿真

    一.应用ISE中仿真器ISim 进行仿真: 1.用CORE Generator 产生gtx IP核(重新改IP配置只需在CORE Generator中打开coregen.cgp文件进入点击IP修改参数 ...

  10. wxPython 4.0.0b2安装

    https://www.cnblogs.com/NanShan2016/p/5518235.html 亮的界面是一个GUI程序必不可少的一部分,wxPython可以做到这一点,加之Python强大的功 ...