# Author:  ESRI
# Date: July 5, 2010
# Version: ArcGIS 10.0
# Purpose: This script generates a report of each page layout element and its
# associated properties. This script is intended to run as a scrip tool
# and requires two parameters:
# 1) Input map document,
# 2) Output text file. import arcpy, os, datetime #Read parameters from tool
mxdPath = arcpy.GetParameterAsText(0)
output = arcpy.GetParameterAsText(1) try: #Create r/w output file
outFile = open(output, "w") #Generate Report header
outFile.write("PageLayout Element Report: \n")
outFile.write("\n")
outFile.write("This report lists the properties of invidual page layout elements within a single MXD. \n")
outFile.write("\n")
outFile.write("MXD location: " + mxdPath + "\n")
outFile.write("\n")
outFile.write("Date: " + str(datetime.datetime.today().strftime("%B %d, %Y")) + "\n")
outFile.write("\n") #Reference MXD file
mxd = arcpy.mapping.MapDocument(mxdPath) #Report data frame elements
if len(arcpy.mapping.ListLayoutElements(mxd, "DATAFRAME_ELEMENT")) > 0:
outFile.write("\n")
outFile.write(" DATA FRAME ELEMENTS: \n") for elm in arcpy.mapping.ListLayoutElements(mxd, "DATAFRAME_ELEMENT"):
outFile.write("\n")
outFile.write("\t Name: " + elm.name + "\n")
outFile.write("\t X Position: " + str(elm.elementPositionX) + "\n")
outFile.write("\t Y Position: " + str(elm.elementPositionY) + "\n")
outFile.write("\t Height: " + str(elm.elementHeight) + "\n")
outFile.write("\t Width: " + str(elm.elementWidth) + "\n") #Report graphic elements
if len(arcpy.mapping.ListLayoutElements(mxd, "GRAPHIC_ELEMENT")) > 0:
outFile.write("\n")
outFile.write(" GRAPHIC ELEMENTS: \n") for elm in arcpy.mapping.ListLayoutElements(mxd, "GRAPHIC_ELEMENT"):
outFile.write("\n")
outFile.write("\t Name: " + elm.name + "\n")
outFile.write("\t X Position: " + str(elm.elementPositionX) + "\n")
outFile.write("\t Y Position: " + str(elm.elementPositionY) + "\n")
outFile.write("\t Height: " + str(elm.elementHeight) + "\n")
outFile.write("\t Width: " + str(elm.elementWidth) + "\n") #Report legend elements
if len(arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT")) > 0:
outFile.write("\n")
outFile.write(" LEGEND ELEMENTS: \n") for elm in arcpy.mapping.ListLayoutElements(mxd, "LEGEND_ELEMENT"):
outFile.write("\n")
outFile.write("\t Name: " + elm.name + "\n")
outFile.write("\t Parent data frame: " + elm.parentDataFrameName + "\n")
outFile.write("\t Title: " + elm.title + "\n")
outFile.write("\t X Position: " + str(elm.elementPositionX) + "\n")
outFile.write("\t Y Position: " + str(elm.elementPositionY) + "\n")
outFile.write("\t Height: " + str(elm.elementHeight) + "\n")
outFile.write("\t Width: " + str(elm.elementWidth) + "\n") #Report map surround elements
if len(arcpy.mapping.ListLayoutElements(mxd, "MAPSURROUND_ELEMENT")) > 0:
outFile.write("\n")
outFile.write(" MAP SURROUND ELEMENTS: \n") for elm in arcpy.mapping.ListLayoutElements(mxd, "MAPSURROUND_ELEMENT"):
outFile.write("\n")
outFile.write("\t Name: " + elm.name + "\n")
outFile.write("\t Parent data frame: " + elm.parentDataFrameName + "\n")
outFile.write("\t X Position: " + str(elm.elementPositionX) + "\n")
outFile.write("\t Y Position: " + str(elm.elementPositionY) + "\n")
outFile.write("\t Height: " + str(elm.elementHeight) + "\n")
outFile.write("\t Width: " + str(elm.elementWidth) + "\n") #Report picture elements
if len(arcpy.mapping.ListLayoutElements(mxd, "PICTURE_ELEMENT")) > 0:
outFile.write("\n")
outFile.write(" PICTURE ELEMENTS: \n") for elm in arcpy.mapping.ListLayoutElements(mxd, "PICTURE_ELEMENT"):
outFile.write("\n")
outFile.write("\t Name: " + elm.name + "\n")
outFile.write("\t X Position: " + str(elm.elementPositionX) + "\n")
outFile.write("\t Y Position: " + str(elm.elementPositionY) + "\n")
outFile.write("\t Height: " + str(elm.elementHeight) + "\n")
outFile.write("\t Width: " + str(elm.elementWidth) + "\n") #Report text elements
if len(arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT")) > 0:
outFile.write("\n")
outFile.write(" TEXT ELEMENTS: \n") for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
outFile.write("\n")
outFile.write("\t Name: " + elm.name + "\n")
outFile.write("\t Text string: " + elm.text + "\n")
outFile.write("\t X Position: " + str(elm.elementPositionX) + "\n")
outFile.write("\t Y Position: " + str(elm.elementPositionY) + "\n")
outFile.write("\t Height: " + str(elm.elementHeight) + "\n")
outFile.write("\t Width: " + str(elm.elementWidth) + "\n") #Close the file
outFile.close() #Automatically open the file in associated TXT application
os.startfile(output) #Delete all variables
del mxdPath, outFile, mxd, output except Exception, e:
import traceback
map(arcpy.AddError, traceback.format_exc().split("\n"))
arcpy.AddError(str(e))

arcgis python 布局中所有元素信息报告的更多相关文章

  1. arcgis python 布局中所有元素平移

    # Author: ESRI # Date: July 5, 2010 # Version: ArcGIS 10.0 # Purpose: This script will loop through ...

  2. arcgis python 布局视图中文本查找替换

    # Author: ESRI # Date: July 5, 2010 # Version: ArcGIS 10.0 # Purpose: This script will perform a sea ...

  3. Python自动化中的元素定位(一)

    1.使用selenium中的webdriver模块对浏览器进行操作 1)from selenium import webdriver 加载模块 2)b = webdriver.Friefox() 打开 ...

  4. python selenium中等待元素出现及等待元素消失操作

    在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示 幸运的是,在selenium 2后有一个模块exp ...

  5. python字典中的元素类型

    python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...

  6. Python自动化中的元素定位xpath(二)

    1.Xpath元素定位 1)ele = b.find_element_by_xpath(‘/html/body/from/input[1]’) 2)Ele = b.find_element_by_xp ...

  7. arcgis通过 Python 使用工具 获得结果信息

    通过 Python 使用工具 ArcGIS 10 每个地理处理工具都具有一组固定的参数,这些参数为工具提供执行所需的信息.工具通常具有定义一个或多个数据集的输入参数,这些数据集一般用于生成新的输出数据 ...

  8. 一文教你读懂Python中的异常信息

    正文共:11813 字 2 图 预计阅读时间: 30 分钟 原文:https://realpython.com/python-traceback/ 译者:陈祥安 原文有所改动. 在写 Python 代 ...

  9. 14.python案例:爬取电影天堂中所有电视剧信息

    1.python案例:爬取电影天堂中所有电视剧信息 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- '''======================== ...

随机推荐

  1. DNS服务——智能域名解析、镜像Web站点、直接域名泛域名

    智能域名解析 智能域名解析只有Linux DNS服务器才有.下面给出2种智能域名解析应用场景. 应用场景1 整个互联网由众多ISP组成,在中国就是联通.电信.移动等等 各家ISP内部网络四通八达,速度 ...

  2. Python绘制混淆矩阵,汉字显示label

    1. 在计算出混淆矩阵之后,想自己绘制图形(并且在图形上显示汉字),可用 #coding=utf-8 import matplotlib.pyplot as plt import numpy as n ...

  3. 在Linux中安装适用于arm64位的nodejs

    # 安装适用于arm64位的nodejs runtime v10.16.3 mkdir /runtimes cd /runtimes wget https://nodejs.org/dist/v10. ...

  4. Linux服务器集群代理配置

    因为之前本科参与开发的一个互联网新闻采集系统需要爬取几个国外的新闻站点,通过翻墙才能访问,而我们的服务器是阿里云服务器,没有操作界面,而且抽取任务是定时执行,必须要实现程序控制VPN的连接与断开.所以 ...

  5. jFinal的小知识点总结

    sql批处理 // 批处理sql List<String> sqlList = new ArrayList<String>(); sqlList.add("delet ...

  6. Java面试题及答案解析

    面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...

  7. k8s的paas平台

    高可靠设计,Etcd 集群,Kubernetes 三主节点,保证集群的高可用性. 基于 GlusterFS /nfs集群,在生产环境和非生产环境下提供存储卷服务. Flannel+VXLAN,提供可靠 ...

  8. MyBatis3_[tp_41-42-43]-_动态sql_trim_自定义字符串截取_choose分支选择_update的set与if-trim 结合的动态更新

    笔记要点出错分析与总结 /** 笔记: * 查询的时候,如果某些条件,没带可能SQL拼装会有问题; * 1.-->给where 后面加上 1=1, 以后的条件都and XXX * 2. < ...

  9. 微信H5支付时用户有微信分身停留5秒后未选择哪个微信分身,也未支付就被动回调到商户支付是否完成的页面

    微信H5支付时用户有微信分身停留5秒后未选择哪个微信分身,也未支付就被动回调到商户支付是否完成的页面 微信支付中间页调起微信收银台后超过5秒 安卓H5支付设置了redirect_url后调起微信收银台 ...

  10. 多任务udp聊天器完整版

    import socket import threading def send_msg(udp_socket,dest_ip,dest_port): while True: send_data = i ...