ArcGIS for Desktop

  • 文档
  • 合约
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS for Desktop

全面的专业性 GIS

ArcGIS for Server

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 合约
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

帮助

  • 主页
  • 入门
  • 制图
  • 分析
  • 管理数据
  • 工具
  • 更多...

将标题和总览图页添加到地图册

ArcGIS 提供了创建地图册(打印或 Adobe PDF 格式)所需的所有工具。地图册是统一打印或导出的一组页面。其中许多页面都包含地图,而其他页面可包含文本、表格信息、内容列表或标题页及其他内容。

更加完整的地图册包括标题页和索引(或鹰眼)图页。您可以使用 ArcMap“数据驱动页面”和 arcpy.mapping Python 脚本的结合来实现该地图册的创建。使用单个地图文档(单个布局)的“数据驱动页面”来创建地图册的地图页面,而使用另一个地图文档创建索引地图页面。您也可以使用另一个地图文档来制作标题页面,或者使用另一个软件来创建标题页面的 PDF 文档。使用 arcpy.mapping 将所有这些元素组合到一个地图册中。

地图册标题页示例

以上示例显示了密歇根州阿勒纳克县的地形图册。此地图包括一个标题页和一个鹰眼图页。可使用“数据驱动页面”和 arcpy.mapping Python 脚本创建此文档。

有关详细信息,请参阅创建数据驱动页面。

此示例基于以下前提假设:

  • 现有地图文档已启用“数据驱动页面”。

    此代码示例适用于使用 ArcGIS 构建地图册中呈现的简单参考系列地图册示例。

    您可通过执行以下帮助主题中概述的步骤重新创建此地图册:
    • 启动地图册
    • 创建格网索引要素
    • 修改格网索引要素图层
    • 启用数据驱动页面
    • 为地图册创建定位器地图
    • 为地图册添加动态文本
    • 导出地图册
  • 已具有地图册标题页 PDF 文件。
  • 已具有包含总览图页的 PDF 文件。

提示:

使用 ArcMap 便可以创建标题页和总览图页。编写每种页面的内容然后将各页面导出为单独的 PDF 即可。

由于地图册需要显示页码,因此应确保“数据驱动页面”的起始页码值足够大以便涵盖最终地图册中起始页面前面的所有页。在本例中,地图页的前面有两页。因此,地图页应从第 3 页开始。请确保设置数据驱动页面 对话框中起始页码的值为 3。

数据驱动页面设置的起始页码示例

同样,如果要显示页码还要确保使用正确的文本元素。不要使用带页数的数据驱动页面,因为该页数只是“数据驱动页面”的总数。不包括将加入最终地图册中的其他页面(例如,标题页或报告页)。您应该改为使用数据驱动页面页码并将此动态文本同显示页面总数的静态文本结合,例如,Page <dyn type="page" property="number"/> of 26。

如果已准备好地图文档和 PDF 文件,便可运行以下代码创建最终地图册 PDF。Python 窗口或独立 Python 应用程序中都可以运行此代码。

虽然本主题中的特定代码仅适用于上述示例地图册,但您可以将此处介绍的过程和技巧应用到自己的地图册中。

该脚本将地图册导出到添加了标题页和总览图页的 PDF。

import arcpy, os

# Create an output directory variable
#
outDir = r"C:\temp\MBExample\final_output"  

# Create a new, empty pdf document in the specified output directory
#
finalpdf_filename = outDir + r"\FinalMB.pdf"
if os.path.exists(finalpdf_filename):
  os.remove(finalpdf_filename)
finalPdf = arcpy.mapping.PDFDocumentCreate(finalpdf_filename) 

# Add the title page to the pdf
#
finalPdf.appendPages(r"C:\temp\MBExample\ancillary_pages\TitlePage.pdf")

# Add the index map to the pdf
#
finalPdf.appendPages(r"C:\temp\MBExample\maps\IndexMap.pdf")

# Export the Data Driven Pages to a temporary pdf and then add it to the
# final pdf. Alternately, if your Data Driven Pages have already been
# exported, simply append that document to the final pdf.
#
mxdPath = r"C:\temp\MBExample\maps\ArenacDDP.mxd"
tempMap = arcpy.mapping.MapDocument(mxdPath)
tempDDP = tempMap.dataDrivenPages
temp_filename = r"C:\temp\MBExample\temp_pdfs\tempDDP.pdf"
if os.path.exists(temp_filename):
  os.remove(temp_filename)
tempDDP.exportToPDF(temp_filename, "ALL")
finalPdf.appendPages(temp_filename)

# Update the properties of the final pdf
#
finalPdf.updateDocProperties(pdf_open_view="USE_THUMBS",
                             pdf_layout="SINGLE_PAGE")

# Save your result
#
finalPdf.saveAndClose()

# Delete variables
#
del finalPdf, tempMap, tempDDP

最开始几行代码表示,导入所需模块;创建保存最终地图册 PDF 的输出位置变量;在指定的输出位置文件夹中创建新的空 PDF 文档。该 PDF 即是该脚本的最终输出。

提示:

编程语言(如 Python)将反斜线 (\) 用作转义字符。例如,\n 表示换行符,\t 表示制表符。指定路径时,可使用正斜线 (/) 代替反斜线。使用两条反斜线(而不是一条)以避免语法错误。也可通过在包含反斜线的字符串前放置字母 r(以便正确解释)来使用字符串文本。

有关详细信息,请参阅 arcpy.mapping 的 PDFDocument 类。

接下来几行代码表示将标题页和总览图页添加到最终 PDF。本示例的前提假设是存在可用作标题页和总览图页的现有 PDF 文档。

下一步是添加地图页面。这个步骤需要已经启用“数据驱动页面”的地图文档。在本例中,此文档为 ArenacDDP.mxd。

有关详细信息,请参阅 arcpy.mapping 的MapDocument 类和 DataDrivenPages 类。

最后的代码表示对属性进行更新,然后保存和关闭最终 PDF。

相关主题

  • 使用 ArcGIS 构建地图册
  • 按字母顺序排序的 arcpy.mapping 类列表
  • 按字母顺序排序的 arcpy.mapping 函数列表
  • Python 快速浏览
  • 创建新 Python 脚本
有关此主题的反馈?

ArcGIS for Desktop

  • 主页
  • 文档
  • 合约
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | 隐私政策 | 法律声明