1、本文应用arcgis api for javascript对发布的动态地图进行打印,打印的为PDF格式,打印出来如图:

2、需要特别注意的是:我们在运行代码前,需要打开PrintingTools,如图

3、并且在启动后,在URL中,需要修改一下,如图:

4、运行代码,点击打印如图:

5、代码部分:

<!DOCTYPE html>
<html>
<head>
<title>地图打印</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<link rel="stylesheet" href="https://js.arcgis.com/3.29/esri/css/esri.css">
<script src="https://js.arcgis.com/3.29/"></script>
<style>
#map{
position:relative;
height:500px;
width:100%;
}
</style>
</head>
<body> <div id='map'>
</div>
<div>
<input id="Btn" type="button" value="打印地图PDF" />
</div>
<script>
var map,sr,bool = false,initextent,url;
require([
"esri/map",
"esri/layers/MapImage",
"esri/layers/MapImageLayer",
"esri/geometry/Extent",
"esri/SpatialReference",
"esri/tasks/PrintTask",
"esri/tasks/PrintTemplate",
"esri/tasks/PrintParameters",
"esri/layers/ArcGISDynamicMapServiceLayer",
"dojo/domReady!"],
function (
Map,
MapImage,
MapImageLayer,
Extent,
SpatialReference,
PrintTask,
PrintTemplate,
PrintParameters,
ArcGISDynamicMapServiceLayer) {
sr = new SpatialReference(4326)
map = new Map("map", {
basemap:"satellite"
});
//调用动态地图服务
var DyLayer=new ArcGISDynamicMapServiceLayer('http://localhost:6080/arcgis/rest/services/dtchina/MapServer');
map.addLayer(DyLayer);
var btn=document.getElementById("Btn");
btn.onclick=function(){
btn.setAttribute("disabled","true");
btn.value="正在输出...";
var printMap = new PrintTask("http://localhost:6080/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task");
//创建地图打印模版
var template = new PrintTemplate();
var params = new PrintParameters();
//输出图片的空间参考
printMap.outSpatialReference = map.SpatialReference
//打印图片的各种参数
template.exportOptions = {
width: 850,
height: 650,
dpi: 96
};
template.format = "PDF";
template.layout = "MAP_ONLY";
params.map = map;
params.template = template;
printMap.execute(params, function(result){
console.log(result);
if (result != null) {
(function(){
btn.disabled=false;
btn.value="打印地图PDF";
})()
window.open(result.url);
}
})
}
});
</script>
</body>
</html>

  

最新文章

  1. ubuntu+mono+jexus 搭建.net的web平台 实现.net跨平台
  2. [SQL]Sql转至问题
  3. BEvent_客制化BusinessEvent通过Workflow Event接受消息传递(案例)
  4. [转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)
  5. A*(A星)算法Go lang实现
  6. lintcode :链表插入排序
  7. 仿ios版微信应用源代码
  8. mysql 利用触发器(Trigger)让代码更简单
  9. (一)spring MVC基本概念和流程
  10. Python笔记1-20151021
  11. linq any() all() 返回true 或者false
  12. ASP.NET WebAPI String 传值问题
  13. 使用Google 的 gson方式解析json
  14. windows之如何把文件夹转换成iso文件
  15. 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)
  16. java虚拟机内存区域
  17. Python进阶6---序列化与反序列化
  18. 清北澡堂 Day2 下午 一些比较重要的数论知识整理
  19. 04-JQuery
  20. ASP.NET MVC之视图传参到控制器的几种形式

热门文章

  1. audio标签以及audio对象
  2. 【C++常用函数】头文件&lt;algorithm&gt;中的常用函数(绝对值,交换,比较)
  3. MySql Navicat可视化工具
  4. Vulnhub DC-1靶机渗透学习
  5. bay——RAC 关闭和启动顺序,状态查看.txt
  6. 使用EA将源码转化为类图
  7. CodeForces - 722C(思维+倒着并查集)
  8. http返回头中content-length与Transfer-Encoding: chunked的问题释疑
  9. acwing 651. 逛画展
  10. python将图片旋转,颠倒,修改尺寸