Einfügen von zusätzlichen Seiten in die Kartensammlung
ArcGIS enthält alle Werkzeuge, die Sie benötigen, um Kartensammlungen im gedruckten Format oder im Adobe PDF-Format zu erstellen. Eine Kartensammlung ist eine Sammlung von Seiten, die zusammen gedruckt oder exportiert werden. Viele der Seiten enthalten Karten, aber andere Seiten können auch Text, Tabelleninformationen, Inhaltstabellen oder Titelseiten und anderen Inhalt enthalten.
Viele Kartensammlungen enthalten Hilfsdokumente, also unterstützende Dokumente. Diese können Berichttext, Tabellen, Indizes und andere unterstützende Daten bereitstellen. Sie können diese Arten von Kartensammlungen mithilfe einer Kombination aus der Funktion "Kartenserie" in ArcMap und einem einfachen arcpy.mapping-Python-Skript erstellen.
Das Beispiel oben zeigt eine topographische Kartensammlung für Arenac County, Michigan. Diese Kartensammlung enthält eine Reihe von unterstützenden Seiten mit Textdaten, Diagrammen und Tabellendaten. Sie können dieses Dokument mit "Kartenserie" und einem arcpy.mapping-Python-Skript erstellen.
Weitere Informationen finden Sie unter Erstellen einer Kartenserie.
Dieses Beispiel umfasst die folgenden Annahmen:
- Sie verfügen über ein Kartendokument mit einer Kartenserie.
Dieses Codebeispiel funktioniert mit der einfachen in Erstellen von Kartensammlungen mit ArcGIS als Beispiel gezeigten Referenzserien-Kartensammlung.
Sie können diese Kartensammlung erneut erstellen, indem Sie die Schritte folgender Hilfethemen ausführen: - Sie verfügen über PDF-Dateien mit Berichten und Diagrammen.
- Sie verfügen über eine PDF-Datei für die Titelseite einer Kartensammlung.
- Sie verfügen über eine PDF-Datei mit der Übersichtskartenseite.
Sie können Titel-, Übersichtskarten-, Berichts- und Diagrammseiten mit ArcMap erstellen. Erstellen Sie einfach den Inhalt für jede Seite, und exportieren Sie ihn in eine separate PDF.
Da die Kartensammlung Seitenzahlen anzeigt, sollten Sie sicherstellen, dass die Seitenzahlen für Kartenserien die zusätzlichen Seiten für die Kartensammlung berücksichtigen. Hier sehen Sie beispielsweise eine Ansicht der Kartenserien-Index-Layer-Tabelle. PageNumber wurde erstellt und durch das Geoverarbeitungswerkzeug Grid_Index_Features bei der Erstellung des Gitters befüllt. Diese Seitenzahlen sind nicht korrekt, da Sie Seiten zwischen den Kartenseiten einfügen. Es muss ein neues Feld für Seitenzahlen erstellt werden. Die Werte müssen entsprechend befüllt werden. Hier wurde ein neues Feld, New PageNum, erstellt und mit Werten befüllt, die die einzufügenden Seiten berücksichtigen.
Stellen Sie sicher, dass Sie vor dem Erstellen der Kartenserie das richtige Feld für das Seitenzahlfeld auswählen.
Stellen Sie ferner sicher, dass Sie die richtigen Textelemente verwenden, wenn Sie Seitenzahlen verwenden. Verwenden Sie nicht Seite der Kartenserie mit Gesamtanzahl, da nur die Gesamtanzahl der Kartenserie berücksichtigt wird. Andere Seiten, wie Titel- oder Berichtsseiten, die in der finalen Kartensammlung enthalten sind, werden nicht berücksichtigt. Verwenden Sie stattdessen Seitenzahl der Seite einer Kartenserie, und kombinieren Sie diesen dynamischen Text mit statischem Text, der die Gesamtseitenzahl anzeigt, beispielsweise Seite <dyn type="page" property="number"/> von 26.
Sobald Sie über ein Kartendokument und PDF-Dateien verfügen, können Sie den Code unten ausführen, um die finale Kartensammlungs-PDF zu erstellen. Sie können den Code im Python-Fenster oder in einer eigenständigen Python-Anwendung ausführen.
Obwohl der spezielle Code in diesem Thema für das oben angegebene Beispiel für eine Kartensammlung gilt, können Sie die beschriebenen Verfahren und Tipps auch auf eigene Kartensammlungen anwenden.
Fügen Sie zusätzliche Seiten in eine Kartensammlungs-PDF ein.
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
Die ersten Codezeilen importieren die notwendigen Module, erstellen eine Ausgabeverzeichnisvariable, in der die finale Kartensammlungs-PDF gespeichert wird und erstellen im angegebenen Ausgabeverzeichnisordner ein neues, leeres PDF-Dokument. Diese PDF ist die finale Ausgabe für dieses Skript.
Programmiersprachen, z. B. Python, behandeln einen umgekehrten Schrägstrich (\) als Escape-Zeichen. Beispielsweise steht \n für einen Zeilenumbruch und \t für einen Tabulator. Beim Angeben von Pfaden kann ein Schrägstrich (/) statt eines umgekehrten Schrägstrichs verwendet werden. Um Syntaxfehler zu vermeiden, können auch zwei statt eines umgekehrten Schrägstrichs verwendet werden. Ein Zeichenfolgenliteral kann auch verwendet werden, wenn der Zeichenfolge mit einem umgekehrten Schrägstrich ein r vorangestellt wird, sodass eine korrekte Interpretation erfolgt.
Weitere Informationen finden Sie in der PDFDocument-Klasse von arcpy.mapping.
Die nächsten Codezeilen fügen der finalen PDF die Titelseite und die Übersichtskartenseite hinzu. In diesem Beispiel wird davon ausgegangen, dass Sie über vorhandene PDF-Dokumente verfügen, die für Titel- und Übersichtskartenseiten verwendet werden können.
Der nächste Schritt besteht im Hinzufügen der Kartenseiten. Dies erfordert, dass Sie über ein Kartendokument mit aktivierter Kartenserie verfügen. In diesem Beispiel ist dieses Dokument ArenacDDP.mxd.
Weitere Informationen finden Sie unter MapDocument-Klasse und DataDrivenPages-Klasse von arcpy.mapping.
Fügen Sie danach die PDF-Seiten mit den Berichten und Diagrammen in die finale PDF ein.
Mithilfe des Codes werden schließlich die Eigenschaften aktualisiert und die finale PDF gespeichert und geschlossen.