Batch-Export von MXD in PDF-Dateien mit ArcGIS Desktop?

9

Nico Burgerhart hat ein fantastisches Skript „Batch Export MXD in PDF“ genannt zurück im Jahr 2008. http://arcscripts.esri.com/details.asp?dbid=14872 Irgendwelche Ideen , wie es in ArcGIS 10 zu implementieren? Etwas mit Python vielleicht? Data Driven Pages hat nichts Vergleichbares, das ich finden könnte.

Hier sind die Schritte in der Readme-Textdatei, die nicht mit der neuen Menüleiste von ArcGIS 10 übereinstimmt:

Tool: Batch export MXD to PDF
Purpose: Saves all MXDs in the selected directory to PDFs in the selected output folder
Author: Nico Burgerhart ([email protected])
Date: 31 Jan. 2007
INSTALLATION NOTES
------------------
1. Open ArcMap
2. Select Tools > Macro's > Visual Basic Editor
3. Select File > Import file
4. Import BatchExportMXDToPDF.bas
5. Select File > Close and Return to ArcMap
6. Select Tools > Macro's > Macro's
7. Select the BatchExportMXDToPDF mactro
8. Click Run 
Sirgeo
quelle

Antworten:

7

Das Exportieren von Kartendokumenten als PDF ist jetzt im Modul arcpy.mapping enthalten

Mark des Codebeispiels von Esri KB Gewusst wie: Exportieren von Kartendokumenten als PDF mit Python :

for mxd in mxd_list:

    current_mxd = arcpy.mapping.MapDocument(os.path.join(ws, mxd))
    pdf_name = mxd[:-4] + ".pdf"
    arcpy.mapping.ExportToPDF(current_mxd, pdf_name)

Ein ausführlicheres Toolbox-Beispiel finden Sie unter Exportieren von MXD in PDF mit freundlicher Genehmigung von @bteranUFA

Mapperz
quelle
Vielen Dank, Mapperz, viele gute dort sehen aus wie ... Immer wieder wird ein ungültiger Mxd-Dateinamenfehler angezeigt, wenn Sie " Kartendokument in PDF exportieren" verwenden. Irgendwelche Ideen? Screenshot: i.imgur.com/fOaGp.jpg
Sirgeo
Haben Sie Leerzeichen oder Sonderzeichen in Ihrer .mxd?
Mapperz
ja ... Leerzeichen, Unterstriche und ein Bindestrich. Hier einige Beispiele: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Glaubst du, ich muss die Leerzeichen und Bindestriche entfernen? Ich werde es morgen früh versuchen, wenn ich zur Arbeit gehe, um Überstunden zu machen.
Sirgeo
1
Danke Mapperz ... Es funktioniert in der Tat gut, nachdem alle Leerzeichen, Unterstriche und Bindestriche entfernt wurden.
Sirgeo
1
Ein zusätzlicher Link (@ Mapperz 'Link funktioniert nicht mehr): support.esri.com/technical-article/000012420
gisnside
1

Sieht so aus, als wäre dies ein VBA-Modul. Wenn Sie VBA mit ArcGIS 10 installieren, sollten Sie es trotzdem ausführen können. (VBA wird weiterhin unterstützt, wird aber in der nächsten Version nicht verfügbar sein.) Besser wäre es, dies als Add-On neu zu schreiben.

Jakub Sisak GeoGraphics
quelle
Vielen Dank, Jakub. Gibt es einen Link mit schrittweisen Anweisungen zur Installation von VBA mit ArcGIS 10? Irgendwelche Vorschläge, wie man als Add-On neu schreibt?
Sirgeo
1
Sie benötigen eine Lizenzdatei von ESRI und das VBA-Installationsprogramm ist eines der Elemente auf der Hauptinstallations-DVD. Was das Add-In betrifft (leider kein Add-On), gibt es mit VB .NET eine gewisse Lernkurve, aber die Mühe lohnt sich. Hier ist ein Link für die exemplarische Vorgehensweise
Jakub Sisak GeoGraphics
1

Fügen Sie das Skript zu einer Toolbox hinzu, und richten Sie zwei Parameter ein, indem Sie mit der rechten Maustaste auf das Skript-Tool klicken und die Anzeige mit dem Namen wie im folgenden Bild eingeben und den Datentyp des Ordners wie im folgenden Bild auswählen: Geben Sie hier die Bildbeschreibung ein

#Export a folder of maps to PDFs at their Map Document set sizes
#Written using ArcGIS 10 and Python 2.6.5
#by: Guest

import arcpy, os

#Read input parameter from user.
path = arcpy.GetParameterAsText(0)

#Write MXD names in folder to txt log file.
writeLog=open(path+"\FileListLog.txt","w")
for fileName in os.listdir(path):
    fullPath = os.path.join(path, fileName)
    if os.path.isfile(fullPath):
        basename, extension = os.path.splitext(fullPath)
        if extension == ".mxd":
            writeLog.write(fullPath+"\n")
            mxd = arcpy.mapping.MapDocument(fullPath)
            print fileName + "\n"
del mxd
print "Done"
writeLog.close()


exportPath =arcpy.GetParameterAsText(1)
MXDread=open(path+"\FileListLog.txt","r")
for line in MXDread:
    #Strip newline from line.
    line=line.rstrip('\n')
    if os.path.isfile(line):
        basename, extension = os.path.splitext(line)
        newName=basename.split('\\')[-1]
        if extension.lower() == ".mxd":
            print "Basename:" +newName
            mxd = arcpy.mapping.MapDocument(line)
            newPDF=exportPath+"\\"+newName+".pdf"
            print newPDF
            arcpy.mapping.ExportToPDF(mxd,newPDF)
            print line + "Export Done"
MXDread.close()
item=path+"\FileListLog.txt"
os.remove(item)
del mxd
Gast
quelle
0

In diesen GP-Tools im ESRI Resource Center finden Sie möglicherweise Informationen zum Exportieren in PDF-Dateien im Batch.

Chad Cooper
quelle
wie Köpfe - gleiche Verbindung wie ich.
Mapperz
Vielen Dank, Chad. Ich erhalte aus irgendeinem Grund immer wieder einen ungültigen Mxd-Dateinamenfehler, wenn ich "Kartendokument in PDF exportieren" verwende. Irgendwelche Ideen? Screenshot: i.imgur.com/fOaGp.jpg
Sirgeo
@ Mapperz - D'OH! Mein Fehler!
Chad Cooper
Erhalten Sie immer wieder einen ungültigen Mxd-Dateinamenfehler, wenn Sie "Kartendokument in PDF exportieren" verwenden. Haben Sie Ideen? Screenshot: i.imgur.com/fOaGp.jpg
Sirgeo
0

Aufbauend auf den Beiträgen von @Guest und @bteranUFA habe ich ein Python-Skript und eine Toolbox zusammengestellt. Es exportiert alle MXD aus einem Eingabeordner an einen Ausgabeort.

Von hier herunterladen ArcPlus.tbxund Scripts\ExportFolder2PDF.pyspeichern und an einem nützlichen Ort speichern, dann lesen Sie die Verwendungshinweise, falls erforderlich.

matt wilkie
quelle