# 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. Windows如何打开/关闭 服务

    先右键Windows主菜单,点击计算机管理: 点击服务和应用程序: 点击服务:

  2. Dotnet站点多个路由对应同一个Action的总结

    需求:有些浏览器会屏蔽带有Ad字样的路径,此时需要创建多个路由指向同一个Action. 例如:原来 : http://lalalalalala.org:1506/api/advert/common   ...

  3. IDEA实用教程(三)

    4. JDK环境的配置 1) 进入JDK配置界面 2) 创建JDK环境 3) 选择本地JDK的安装位置 4) 保存配置 点击右下角的Apply后,再点击OK保存配置

  4. 6. kafka序列化和反序列化

    https://blog.csdn.net/weixin_33690963/article/details/91698279 kafka序列化: 生产者在将消息传入kafka之前需要将其序列化成byt ...

  5. 记一个VS连接过程中找不到cpp的解决方法

    在新增几个qt页面时,发现原来没动的几个cpp 连接报错了,错误均是qt的相关文件找不到 应该是moc文件没有生产或者没有被包含进工程.我想着既然我没动,应该不会是moc的原因,就在其他方向解决了很久 ...

  6. VUE编译报错 Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead

    背景: 在使用VUE添加标签的时候编译报错,报错如下: Component template should contain exactly one root element. If you are u ...

  7. hive 常用操作

    参考:https://www.cnblogs.com/jonban/p/10779938.html Hive 启动:hive 退出:hive>quit; show databases; use  ...

  8. 17.组件页面应用和vue项目生成

    基本示例 这里有一个 Vue 组件的示例: // 定义一个名为 button-counter 的新组件 Vue.component('button-counter', { data: function ...

  9. sql server 很好的基础练习 <学生表-老师表-课程表-选课表>

    表结构 --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称CourseName. ...

  10. 使用webuploader实现大文件断点续传

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...