ArcMap批量出图的设计与实现(二)

技术选型

主体程序采用ArcPy开发,充分发挥Python语言的黏合剂特点,不仅能避免ArcGIS不同版本带来编译开销,更能灵活修改,可方便地根据客户的需求变化动态修改维护程序,减少返工。对显示字段调整、图片导出质量等可能需要频繁变化的小需求,实施人员即可现场响应。

将表格中显示的字段导出为图片,不采用Python而采用C#语言开发,理由包括:

  1. C#可直接引入第三方组件库并在打包时直接包含进去,而Python引入第三方库(此处的第三方,指在Python2.7、ArcPy安装后还需要额外引入的包)后,客户现场可能存在无法部署(其实本质原因是我本机在Python开发时,因公司网络原因,无法import第三方库)。
  2. C#可采用非Office组件来完成将Excel文件导出为图片的功能,彻底消除程序的目标运行环境对Office及其版本的依赖。
  3. 不同语言的程序可互相调用、交互,完全可以通过传递参数来进行。
  4. 为方便使用,最终提供的程序入口为一个bat文件,使用者只需要修改其中一个参数,将mxd文档路径替换为实际的路径,保存关闭后双击bat文件即可实现批量导出。

 

实现思路

  1. 将输入的mxd文档复制一份,作为我们真正使用的文档,以免程序对原始文件布局、内容造成修改。
  2. 检测mxd文档中的目录图层,遍历所有要素记录,每找到一条记录将其平移到布局视图中心,另存一份文档,并将指定的属性字段导出到文本文件中。
  3. 制作一个模板xlsx文件,调整格式(单元格内容自动换行、水平左对齐、垂直居中对齐),遍历上一步骤中导出的文本文件,动态替换模板xlsx文件中对应单元格的内容,另存xlsx文件。
  4. 打开xlsx文件,将指定区域的单元格导出为图片。
  5. 遍历mxd文档,插入与其居中打印要素对应的属性图片(替换mxd文档中的示例图片),并将文档导出为图片或PDF文件。
  6. 清理过程数据(包括另存的mxd文档、属性导出的文本文件、通过文本创建的xlsx文件、通过xlsx文件导出的图片)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值