ArcGIS proporciona todas las herramientas necesarias para crear libros de mapas en formato impreso o Adobe PDF. Un libro de mapas es un conjunto de páginas impresas o exportadas juntas. Muchas de las páginas contienen mapas, pero otras pueden estar dedicadas a texto, tablas, índices o páginas de título y otros contenidos.
Un libro de mapas más completo incluye una página de título y una página de índice de mapas (vista general). Esto se puede lograr mediante una combinación de Páginas controladas por datos de ArcMap y una secuencia de comandos de Python arcpy.mapping. Utilice las páginas controladas por datos de un documento de mapa único (diseño único) para crear las páginas de mapa del libro, mientras que otro documento de mapa se puede utilizar para crear la página de índice de mapas. Puede utilizar otro documento de mapa para crear la página de título o puede utilizar otro software para crear un documento PDF para la página de título. Utilice arcpy.mapping para combinar todos estos elementos en un libro de mapas único.
En el ejemplo anterior se muestra un mapa topográfico para el condado Arenac en Michigan (EE. UU.). Este mapa incluye una página de título y una página de vista general de mapas. Puede crear este documento mediante Páginas controladas por datos y una secuencia de comandos de Python arcpy.mapping.
Para obtener más información, vea Crear páginas controladas por datos.
En este ejemplo se asume lo siguiente:
- Tiene un documento de mapa existente con páginas controladas por datos habilitadas.
En este ejemplo de código se trabaja con el ejemplo de libro de mapas de serie de referencia simple que se muestra en Generar libros de mapas con ArcGIS.
Puede recrear este libro de mapas siguiendo los pasos descritos en estos temas de Ayuda: - Tiene un archivo PDF existente para la página de título del libro de mapas.
- Tiene un archivo PDF existente que contiene la página de mapa de vista general.
Dado que el libro de mapas visualiza los números de página, debe asegurarse de que el número de página inicial para las páginas controladas por datos incluya todas las páginas del libro de mapas final que la precede. En este ejemplo, hay dos páginas que preceden las páginas de mapa. Por consiguiente, las páginas de mapa empiezan en la página 3. Asegúrese de que sea 3 el valor para Número de página de inicio en el cuadro de diálogo Configura las páginas controladas por datos.
Además, asegúrese de que está utilizando los elementos de texto correctos si está visualizando el número de página. No utilice Página controlada por datos con total, dado que el recuento es solo el número total de páginas controladas por datos. No incluye otras páginas, tales como el título o las páginas de informe, que incorporará en el libro de mapas final. En su lugar, utilice Número de página controlada por datos y combine este texto dinámico con texto estático que muestre el número total de páginas, por ejemplo, Página <dyn type="page" property="number"/> de 26.
Una vez que tenga un documento de mapa y archivos PDF listos, puede ejecutar el código siguiente para crear el PDF final del libro de mapas. Puede ejecutar el código en la Ventana de Python o en una aplicación Python independiente.
Aunque el código concreto de este tema se aplica al libro de mapas del ejemplo anterior, también puede aplicar los procedimientos y las sugerencias que aquí se presentan a sus propios libros de mapas.
Este script exporta un libro de mapas a PDF con páginas de título y de vista general agregadas.
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
Las primeras líneas de código importan los módulos necesarios; crean una variable de ubicación de salida donde se guardará el PDF del libro de mapas final; y crea un nuevo documento PDF, vacío, en la carpeta de ubicación de salida especificada. Este PDF es el resultado final para este script.
Para obtener más información, vea la clase PDFDocument de arcpy.mapping.
Las siguientes líneas de código agregan la página de título y la página del mapa de vista general al PDF final. En este ejemplo se supone que tiene documentos PDF existentes que se pueden utilizar para la página de título y las páginas de mapa de vista general.
El próximo paso es agregar las páginas de mapa. Esto requiere tener un documento de mapa con páginas controladas por datos ya habilitadas. En este ejemplo, ese documento es ArenacDDP.mxd.
Para obtener más información, vea la clase MapDocument y la clase DataDrivenPages de arcpy.mapping.
Finalmente, el código actualiza las propiedades y, a continuación, guarda y cierra el PDF final.