#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. Oracle 查询搜索字符串在哪些存储过程中包含

    如下: select *from all_source where OWNER = 'LC0019999'and TEXT like '%insert into%d values(%'

  2. HTML5事件-pageshow 和 pagehide

    <!doctype html> <html> <head> <title>html5事件</title> <meta charset= ...

  3. SpringCloud系列十四:实现容错的手段

    1. 回顾 前面已用Eureka实现了微服务的注册与发现,Ribbon实现了客户端侧的负载均衡,Feign实现了声明式的API调用. 2. 实现容错的手段 如果服务提供者响应非常慢,那么消费者对提供者 ...

  4. LwIP协议栈(2):网络接口

    在LwIP中,物理网络硬件接口结构保存在一个全局链表中,它们通过结构体中的 next 指针连接. struct netif { /// pointer to next in linked list * ...

  5. Creating Dialogbased Windows Application (2) / 创建基于对话框的Windows应用程序(二)Button的应用、新建子窗体 / VC++, Windows

    创建基于对话框的Windows应用程序(二) —— Button的应用.新建子窗体 可以发现上一节创建的窗体中,点击OK和Cancel两个按钮是没有任何反应的.现在我们来为他们添加退出对话框的功能. ...

  6. form表单右边弹窗提示不能为空

    if (key == null || key == "") { layer.tips('流程标识key不能为空', $('#search_input'), { tips: [3, ...

  7. PhpMyAdmin 配置文件现在需要一个短语密码的解决方法

    新版本的PhpMyAdmin 增强了安全性,需要在配置文件设置一个短语密码.否则进入之后会有“配置文件现在需要一个短语密码.”的红色警叹提示. 解决方法: 1.将 phpMyAdmin/librari ...

  8. svn备份一般采用三种方式

    http://www.cnblogs.com/itech/archive/2011/10/11/2206988.html 备份策略 ============== svn备份一般采用三种方式:1)svn ...

  9. 【转】Monkey测试6-Monkey Test Log

    Moneky Test Log 分析: 首先用一个最简单的例子分析:monkey --pct-trackball 0 --throttle 100 -v 500/*p参数: 表示指定测试的程序/*v参 ...

  10. 我的第八个java程序--读取word内容

    package World; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.p ...