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.
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:
- Tiene un documento de mapa existente con páginas controladas por datos.
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 volver a crear este libro de mapas al seguir los pasos que se describen en estos temas de ayuda: - Tiene archivos PDF que contienen informes y gráficos.
- 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 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.
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.
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 recuento, 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.
Para obtener más información, consulte 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, consulte 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.