【问题标题】:Adding a border to PDF from ArcMap export using Arcpy使用 Arcpy 从 ArcMap 导出向 PDF 添加边框
【发布时间】:2019-12-13 06:16:49
【问题描述】:

我正在尝试使用 arcpy 为从 ArcMap 导出的 PDF 添加边框。我无法在任何地方找到答案,arcpy 似乎也没有任何文档。

奇怪的是,我从中导出的地图布局周围已经有黑色边框,但是当我导出为 PDF 时,没有边框。我的代码在这里:

#Export to PDF
currentMXD_Map = (r"myMap.mxd")
mxd_Map = arcpy.mapping.MapDocument(currentMXD_Map)
df_Map = arcpy.mapping.ListDataFrames(mxd_Map,"*")[0]
arcpy.mapping.ExportToPDF(mxd_Map, r"myMap.pdf", df_Map,
                          df_export_width=3300,
                          df_export_height=2550)
        
mxd_Map.save()

我认为 arcpy.mapping 有一种方法可以为 PDF 导出(或在地图布局中)添加边框。接下来我可以尝试什么?

【问题讨论】:

标签: python border gis arcgis arcpy


【解决方案1】:

arcpy 不是为地图或布局创作而设计的。它旨在操纵现有的布局或地图。这是documentation的引述

arcpy.mapping 模块被设计成可以用来修改 现有地图文档 (.mxd) 中的现有元素或 图层文件 (.lyr)。换句话说,它有助于自动化 现有功能,但不能用于创作新对象。

“添加”边框的最简单方法是在地图布局中设置一个边框,并将其大小设置为 0 或放置在屏幕外,然后使用 arcpy 使其可见或将其移动到您想要的位置。看来您已经有了边框,所以它可能不在正确的位置或设置为 0 宽度。

无论哪种方式,您都可以通过在 arcmap 中为其命名,然后使用 ListLayoutElements 访问边框元素。

首先在arcmap的元素属性中填写“元素名称”。请注意我是如何将高度和宽度设置为 0 以使其正常不可见的。

然后使用ListLayoutElements访问元素

#we want the first border element because we are assuming there is only one.
#iterate or change index depending on your scenario
borderElement = arcpy.mapping.ListLayoutElements(mxd, "GRAPHIC_ELEMENT", "border_element")[0]
borderElement.elementHeight = y
borderElement.elementWidth = x

【讨论】:

  • 谢谢-但这不是设置元素的宽度和高度,而不是边框​​宽度吗?
  • 是的,它正在设置元素的宽度和高度。不确定边框宽度是否通过 arcpy 暴露。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 2017-03-28
相关资源
最近更新 更多