Insertion de pages complémentaires dans votre atlas

ArcGIS fournit tous les outils nécessaires pour créer des atlas imprimés ou au format PDF d'Adobe. Un atlas est un ensemble de pages imprimées ou exportées ensemble. Un grand nombre de pages contiennent des cartes, mais d'autres pages peuvent présenter du texte, des informations tabulaires, des tables des matières ou des titres et tout autre contenu.

Un grand nombre d'atlas comprennent des documents auxiliaires, ou complémentaires. Il peut s'agir de texte de rapport, de tables, d'index et d'autres données complémentaires. Vous pouvez créer ces types d'atlas en utilisant les pages dynamiques d'ArcMap et un script Python arcpy.mapping simple.

Exemple de pages de rapport dans un atlas

L'exemple ci-dessus montre un atlas topographique d'Arenac County, dans le Michigan. Cet atlas comprend plusieurs pages complémentaires qui présentent des informations textuelles, des diagrammes et des données tabulaires. Vous pouvez créer ce document à l'aide des pages dynamiques et d'un script Python arcpy.mapping.

Pour plus d'informations, reportez-vous à la rubrique Création de pages dynamiques

Cet exemple repose sur les conditions suivantes :

AstuceAstuce :

Vous pouvez créer les pages de titre, de carte globale, de rapport et de diagramme à l'aide d'ArcMap. Créez simplement un contenu pour chaque page et exportez-le vers un PDF distinct pour chacune d'entre elles.

Puisque l'atlas affiche des numéros de page, vous devez vous assurer que les numéros utilisés par les pages dynamiques prennent en compte les pages complémentaires que vous insérerez dans l'atlas. Par exemple, voici une illustration de la table de couche d'indexation des pages dynamiques. PageNumber a été créé et renseigné par l'outil de géotraitement Grid_Index_Features lorsque la grille a été créée. Ces numéros de page ne seront pas corrects puisque vous souhaitez insérer des pages entre les différentes pages de cartes. Un nouveau champ doit être créé pour les numéros de page et les valeurs doivent être renseignées en conséquence. Ici un nouveau champ, NewPageNum, a été créé et renseigné avec des valeurs qui prennent en compte les pages à insérer.

Exemple de champ Nouveau numéro de page dans la table attributaire des couches d'indexation des pages dynamiques

Assurez-vous que vous choisissez le champ approprié pour les numéros de page avant de créer les pages dynamiques.

Exemple de champ Numéro de page lors de la configuration des pages dynamiques

Assurez-vous également que vous utilisez les éléments de texte corrects si vous affichez le numéro de page. Vous ne devez pas utiliser Page dynamique avec numéro, car le total correspond uniquement au nombre total de pages dynamiques. Il ne comprend pas les autres pages, telles que les pages de titre ou de rapport, que vous incorporerez à l'atlas final. A la place utilisez, Numéro de la page dynamique et combinez ce texte dynamique avec le texte statique qui affiche le nombre total de pages, par exemple, Page <dyn type="page" property="number"/> of 26.

Une fois que votre carte et vos fichiers PDF sont prêts, vous pouvez exécuter le code ci-dessous pour créer votre atlas final au format PDF. Vous pouvez exécuter le code dans la fenêtre Python ou dans une application Python autonome.

Bien que le code spécifique de cette rubrique s'applique à l'exemple d'atlas ci-dessus, vous pouvez également utiliser les procédures et les conseils présentés ici pour vos propres cartes et atlas.

Insérez des pages complémentaires dans un atlas au format PDF.

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

Les premières lignes de code permettent d'effectuer les opérations suivantes : importer les modules nécessaires ; créer une variable d'emplacement des données en sortie où l'atlas final au format PDF sera enregistré ; créer un nouveau document PDF vide dans le dossier d'emplacement des données de sortie spécifié. Ce PDF est le document de sortie final pour ce script.

AstuceAstuce :

Les langages de programmation, tels que Python, traitent une barre oblique inverse (\) en tant que caractère d'échappement. Par exemple, \n représente un saut de ligne et \t représente une tabulation. Lorsque vous spécifiez un chemin d'accès, vous pouvez utiliser une barre oblique (/) à la place d'une barre oblique inverse. Deux barres obliques inverses peuvent être utilisées au lieu d'une pour éviter une erreur de syntaxe. Un littéral de chaîne peut être également utilisé en plaçant la lettre r avant une chaîne contenant une barre oblique inverse afin de l'interpréter correctement.

Pour plus d'informations, reportez-vous à la rubrique Classe PDFDocument d'arcpy.mapping.

Les lignes de code suivantes ajoutent la page de titre et la page de carte globale au PDF final. Cet exemple suppose que vous disposez de documents PDF existants pouvant être utilisés pour les pages de titre et de carte globale.

L'étape suivante consiste à ajouter les pages de carte. Cela nécessite que vous ayez une carte dont l'option Pages dynamiques est déjà activée. Dans cet exemple, ce document s'appelle ArenacDDP.mxd.

Pour plus d'informations, reportez-vous aux rubriques Classe MapDocument et Classe DataDrivenPages d'arcpy.mapping.

Ensuite, insérez les pages au format PDF contenant les rapports et diagrammes dans le PDF final.

Enfin, le code met à jour les propriétés, puis enregistre et ferme le PDF final.

Rubriques connexes


7/10/2012