免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 7875|回复: 27
收起左侧

[二次开发] 自制将多个mxd文件导出成PDF文件的脚本工具

    [复制链接]

12

主题

1万

铜板

29

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1052
QQ
发表于 2013-12-5 23:16 | 显示全部楼层 |阅读模式
本帖最后由 zhtleon 于 2013-12-5 23:25 编辑

自制将多个mxd文件导出成PDF文件的脚本工具
级别不够不能发软件,不能发图片,需要的留下邮箱。
功能:某目录下有多个mxd文件需要导出成PDF(或者JPG等格式),一个一个点太慢,做个脚本工具可以批量一次全部导出到目录下的PDF子目录下。
用法:脚本arcpy工具的版本参考添加pytong工具的教程,添加好后只需设置两个参数,在添加的脚本上按右键进入属性对话框,在参数(paramaters)选项卡下设置显示名称(display name)和数据类型(data type)先设置第一行为数据目录,数据类型是文件夹(folder),第二行设置输出目录,数据类型也为文件夹(folder),不同的是第一行下方要设置为input型,第二行下方要设置为output型,设好后脚本就能用了。
(现在的版本只需要设置输入目录就行了),使用方法是代码复制到文本编辑器里,然后把后缀名改为py,然后在arcgis我的工具箱中添加就行了。然后按上面说的设置一行参数。
代码:
import arcpy, os, time, shutil, sys
arcpy.env.overwriteOutput = True
path = arcpy.GetParameterAsText(0)
outfoder = 'PDF'
res = 300
mode1 = 1
mode2 = 1
mode3 = 0
arcpy.env.workspace = path
fcs = arcpy.ListFiles("*.mxd")
fc_count = len(fcs)
arcpy.AddMessage(fc_count)
arcpy.SetProgressor("default", "MXD导出PDF",0, fc_count, 1)
if not os.path.isdir(path):
         print ur'没有找到文件夹!'
         quit()
else:
         arcpy.AddMessage("开始导出:")
def main():
     if not os.path.isdir(path + '//' +outfoder):
         os.mkdir(path + '//' +outfoder)
     else:
         shutil.rmtree(path + '//' +outfoder)
         os.mkdir(path + '//' +outfoder)
     for root, dirs, files in os.walk(path):
       if mode2 == 0:
         temp_path = root
       else:
         temp_path = path + '//' +outfoder
       for afile in files:
         if afile[-4:].lower() == '.mxd':
           mxd = arcpy.mapping.MapDocument(os.path.join(root,afile))
           arcpy.mapping.ExportToPDF(mxd, os.path.join(temp_path,afile[:-3] + 'pdf'), resolution = res)
           del mxd
           arcpy.AddMessage("  成功导出文件")
     if mode3 != 0:
         os.system('shutdown -s -t 120')
     else:
          arcpy.AddMessage("成功导出全部文件!")
if __name__ == "__main__":
     main()



评分

参与人数 2铜板 +6 收起 理由
wb6865 + 2
manju001 + 4 感谢回复!

查看全部评分

6

主题

1503

铜板

2

好友

助理工程师

Rank: 5Rank: 5

积分
132
发表于 2020-1-28 11:37 | 显示全部楼层
1012983494@qq.com,多谢楼主分享
回复 支持 1 反对 0

使用道具 举报

35

主题

2万

铜板

36

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2529
发表于 2013-12-6 09:12 | 显示全部楼层
136024494@qq.com    我先试试看  谢谢了

评分

参与人数 1铜板 +1 收起 理由
admin + 1 亲,你好快哦~~~

查看全部评分

回复 支持 反对

使用道具 举报

0

主题

100

铜板

1

好友

实习生

Rank: 1

积分
7
发表于 2015-3-23 18:44 | 显示全部楼层
787862973@qq.com,需要软件,谢谢
回复 支持 反对

使用道具 举报

0

主题

70

铜板

0

好友

实习生

Rank: 1

积分
5
发表于 2016-3-19 09:33 | 显示全部楼层
1114765761@qq.com 多谢楼主!
回复 支持 反对

使用道具 举报

6

主题

4522

铜板

5

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
594
发表于 2017-12-11 16:20 | 显示全部楼层
好东西,,感谢分享
回复 支持 反对

使用道具 举报

6

主题

4522

铜板

5

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
594
发表于 2017-12-12 11:01 | 显示全部楼层
有没有转JPG的
回复 支持 反对

使用道具 举报

0

主题

5万

铜板

3

好友

VIP会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
2615

精华勋章爱心勋章地信元老童话节勋章12周年纪念勋章

发表于 2017-12-12 23:29 手机频道 | 显示全部楼层
jhpzlm@163.com我也要一份,谢谢
回复 支持 反对

使用道具 举报

0

主题

305

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
43
发表于 2017-12-13 11:30 | 显示全部楼层
qwangchoice@163.com。需要软件,谢谢
回复 支持 反对

使用道具 举报

0

主题

52

铜板

0

好友

实习生

Rank: 1

积分
3
发表于 2018-3-1 16:53 | 显示全部楼层
757592938@qq.com谢谢楼主
回复 支持 反对

使用道具 举报

0

主题

52

铜板

0

好友

实习生

Rank: 1

积分
3
发表于 2018-3-1 16:57 | 显示全部楼层
757592938@qq.com 需要软件,谢谢楼主
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表