ArcGIS API for JS4.8通过本地ArcGIS Server的打印服务进行地图打印

在官网ArcGIS API demo中看到了地图打印的例子,打印功能的组件各种选项已经做得很全面了,demo用的是ArcGIS Online的打印服务,如果在内网开发的话,这样肯定是不行的。

  var print = new Print({
            view: view,
            // specify your own print service
            printServiceUrl: "https://utility.arcgisonline.com/arcgis/rest/services/Utilities/PrintingTools/GPServer/Export%20Web%20Map%20Task"
          });

经过搜索发现,在ArcGIS Server上就有这个地图打印的服务,只是默认没有开启,将其开启就可以了。主要需要设置ArcGIS Server跨域的——ArcGIS API for JS 4.7开发过程中的跨域问题与解决

具体的各项额外的设置,用户可以点击PrintingTools,进行额外的详细设置,不更改默认设置也能实现打印功能。

开启打印服务后,进入功能就找到服务的地址,下图红线中就是,在使用的时候需要在后面加上"/Export%20Web%20Map%20Task"。

下面看结果,我是使用的是ArcGIS Server默认发布的 SampleWorldCities地图服务,对其进行打印:

点击导出,下面会提示正在进行,过一会下面的文字可以点击了,点击就会弹出打印好的地图,在新的界面点击下载就可以获取你打印的地图了。

 在给图添加注记信息的时候,可能最终打印会出现中文乱码,需要去ArcGIS Server安装目录下Templates\ExportWebMapTemplates路径下,找到对应尺寸的模版,将模版中的对应的地图字体更改,然后重启打印服务。

猜你喜欢

转载自blog.csdn.net/GISuuser/article/details/81388665