Insertar páginas complementarias en el libro de mapas

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.

Muchos libros de mapas incluyen documentos auxiliares o de respaldo. Estos pueden ser texto de informes, tablas, índices y otros datos de apoyo. La creación de estos tipos de libros de mapas se puede realizar a través de una combinación de páginas controladas por datos de ArcMap y una secuencia de comandos de Python arcpy.mapping.

Ejemplo de páginas de informe de un libro de mapas

En el ejemplo anterior se muestra un mapa topográfico para el condado Arenac en Michigan (EE. UU.). Este libro de mapas incluye una serie de páginas de apoyo que ofrecen información sobre el texto, gráficos y datos tabulares. 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:

SugerenciaSugerencia:

Puede crear páginas de título, de mapa de vista general, de informe y de gráficos utilizando ArcMap. Solo tiene que crear el contenido para cada página y exportar cada una de ellas a un PDF separado.

Dado que el libro de mapas muestra números de página, debe asegurarse de que los números de página que utilizan las páginas controladas por datos tengan en cuenta las páginas complementarias que insertará en el libro de mapas. Por ejemplo, esta es una vista de la tabla de la capa de índice de páginas controladas por datos. PageNumber se creó y se completó mediante la herramienta de geoprocesamiento Grid_Index_Features cuando se creó la cuadrícula. Estos números de página no serán correctos, puesto que va a insertar páginas entre las páginas de mapa. Es necesario crear un nuevo campo para los números de página, y los valores se deben completar en consecuencia. Aquí se creó un nuevo campo, New PageNum, y se completó con valores que tienen en cuenta las páginas que se van a insertar.

Ejemplo de campo numérico de nueva página de tabla de atributos de la capa de índice DDP

Asegúrese de elegir el campo correcto para el campo de número de página antes de crear las páginas controladas por datos.

Ejemplo de campo numérico de página de IU de configuración de 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.

Insertar páginas complementarias en un PDF de libro de mapas.

import arcpy, os  # Create an output location variable outDir = r"C:\temp\MBExample\final_output"    # Create a new, empty pdf document in the specified output location folder finalpdf_filename = outDir + r"\ArenacMB.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 overview 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 Reports.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)  # Insert the pdf pages containing the reports and graphs into the final pdf # finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg4.pdf", 4) finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg5.pdf", 5) finalPdf.insertPages(r"C:\temp\MBExample\ancillary_pages\Report_pg7.pdf", 7)  # 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

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.

SugerenciaSugerencia:

Los lenguajes de programación, tales como Python, tratan una barra diagonal inversa (\) como un carácter de escape. Por ejemplo, \n representa un avance de línea y \t representa un tabulador. Al especificar una ruta de acceso, se puede utilizar una barra diagonal (/) en lugar de una barra diagonal inversa. Se puede utilizar dos barras diagonales inversas en lugar de una para evitar errores de sintaxis. También se puede usar un literal de cadena colocando la letra r antes de una cadena de caracteres que contenga una barra diagonal inversa, para que se interprete correctamente.

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 de mapa es Informes de ArenacDDP.

Para obtener más información, vea la clase MapDocument y la clase DataDrivenPages de arcpy.mapping.

A continuación, inserte las páginas PDF que contienen los informes y los gráficos en el PDF final.

Finalmente, el código actualiza las propiedades y, a continuación, guarda y cierra el PDF final.

Temas relacionados

5/10/2014