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

查看: 3881|回复: 8
收起左侧

[求助] 多个Arcgis文件怎么批量输出pdf,文件是mxd和mdb格式的

[复制链接]

1

主题

133

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
18
发表于 2020-4-20 12:23 手机频道 | 显示全部楼层 |阅读模式
100铜板

1587356534812.jpg

141

主题

980万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
622850
发表于 2020-4-20 14:33 | 显示全部楼层
请论坛各位高手回答下楼主的提问,会奖励相应的铜板和威望的哦!
回复

使用道具 举报

11

主题

1万

铜板

33

好友

地信名人堂

Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19

积分
1660

精华勋章宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章名人堂勋章成就学员勋章

发表于 2020-4-20 15:45 | 显示全部楼层
中国工具可以

评分

参与人数 1威望 +20 铜板 +60 收起 理由
jimi21 + 20 + 60 感谢回复!

查看全部评分

回复

使用道具 举报

0

主题

762

铜板

2

好友

技术员

Rank: 3Rank: 3

积分
81
发表于 2020-4-20 23:18 | 显示全部楼层
论坛里之前已经有高手提供了代码,要学会先在论坛搜索,原贴地址:http://bbs.3s001.com/forum.php?mod=viewthread&tid=135280


自制将多个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()




回复

使用道具 举报

7

主题

2万

铜板

45

好友

资深会员

工作要低调,做人要厚道

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3101

宣传勋章爱心勋章组织勋章地信元老灌水勋章荣誉会员勋章活跃勋章地信专家组VIP勋章贡献勋章冰雪节勋章成就学员勋章

发表于 2020-4-21 19:04 | 显示全部楼层
不知道打印时采用PDF打印机能否实现
回复

使用道具 举报

12

主题

1万

铜板

29

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1052
QQ
发表于 2020-4-22 12:59 | 显示全部楼层
批量导出MXD.zip (2.54 KB, 下载次数: 149)

评分

参与人数 1铜板 +2 收起 理由
m634236g4xjhyth + 2 好贴好报!

查看全部评分

回复

使用道具 举报

0

主题

57

铜板

0

好友

实习生

Rank: 1

积分
5
发表于 2020-8-12 21:22 | 显示全部楼层

在CSDN上面充了会员,结果,应该是一个.mxd分幅批量导出的那种吧。python写的又看不懂。
顺便看到楼主的疑问与我一致,测试了一下。竟然真的可以!!!
非常感谢!
回复

使用道具 举报

1

主题

1万

铜板

2

好友

黄金会员

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

积分
4874
发表于 2022-12-17 09:48 | 显示全部楼层
感谢分享
回复

使用道具 举报

1

主题

1200

铜板

3

好友

助理工程师

Rank: 5Rank: 5

积分
376
发表于 2023-1-23 21:52 | 显示全部楼层
同样需要
回复

使用道具 举报

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

本版积分规则

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