Esportazione batch di MXD in file PDF utilizzando ArcGIS Desktop?


9

Nico Burgerhart ha realizzato un fantastico script chiamato "Esportazione batch MXD in PDF" nel 2008. http://arcscripts.esri.com/details.asp?dbid=14872 Qualche idea su come implementarlo in ArcGIS 10? Qualcosa che usa Python forse? Data Driven Pages non ha nulla di paragonabile a quello che ho potuto trovare.

Ecco i passaggi nel file di testo Leggimi che non funziona con la nuova barra dei menu di ArcGIS 10:

Tool: Batch export MXD to PDF
Purpose: Saves all MXDs in the selected directory to PDFs in the selected output folder
Author: Nico Burgerhart (nicoburgerhart@hotmail.com)
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 

Risposte:


7

Esporta documento mappa in PDF è ora incluso nel modulo arcpy.mapping

Esempio di codice di esempio da Esri KB Procedura: esportare documenti cartografici in PDF utilizzando 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)

Per un esempio più esteso di Toolbox vedi Esporta MXD in PDF per gentile concessione di @bteranUFA


Grazie a Mapperz, sembra che ce ne siano molti di buoni .... continua a ricevere un errore di nome file Mxd non valido per qualche motivo quando usi "Esporta documento mappa in PDF", qualche idea? schermata: i.imgur.com/fOaGp.jpg
sirgeo

Hai spazi o caratteri speciali nel tuo .mxd?
Mapperz

si .... spazi, caratteri di sottolineatura e un trattino. Ecco alcuni esempi: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd pensi che devo eliminare gli spazi e i trattini? Ci proverò domani mattina quando vado al lavoro per fare degli straordinari.
sirgeo,

1
Grazie Mapperz .... Funziona davvero bene dopo aver rimosso tutti gli spazi, i trattini bassi e i trattini.
sirgeo,

1
Un link extra (il link di @ Mapperz non funziona più): support.esri.com/technical-article/000012420
gisnside,

1

Sembra che questo sia un modulo VBA. Se installi VBA con ArcGIS 10 dovresti essere in grado di eseguirlo allo stesso modo. (VBA è ancora supportato, ma non sarà nella prossima versione.) Un approccio migliore sarebbe riscrivere questo come componente aggiuntivo.


Grazie Jakub, esiste un collegamento con istruzioni dettagliate su come installare VBA con ArcGIS 10? qualche suggerimento su come riscrivere come componente aggiuntivo?
sirgeo,

1
Sarà necessario un file di licenza dall'ESRI e il programma di installazione VBA è uno degli elementi sul DVD di installazione principale. Per quanto riguarda il componente aggiuntivo (mi dispiace non aggiungere), c'è un po 'di curva di apprendimento con VB .NET ma ne vale la pena. Ecco un link per la procedura dettagliata: help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/…
Jakub Sisak GeoGraphics

1

Aggiungi lo script a una casella degli strumenti, quindi imposta due parametri facendo clic con il pulsante destro del mouse sullo strumento di script e digitando il display come mostrato nell'immagine sottostante e selezionando il tipo di dati della cartella come nell'immagine qui sotto: inserisci qui la descrizione dell'immagine

#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

0

Guarda in questo set di strumenti GP nel Centro risorse ESRI, potrebbe esserci qualcosa per l'esportazione in PDF in batch.


come le menti - stesso link come me.
Mapperz

Grazie Chad, continuo a ricevere l'errore del nome file Mxd non valido per qualche motivo quando utilizzo 'Esporta documento mappa in PDF', qualche idea? schermata: i.imgur.com/fOaGp.jpg
sirgeo

@Mapperz - D'OH! Errore mio!
Chad Cooper,

continua a ricevere un errore di nome file Mxd non valido quando si utilizza "Esporta documento mappa in PDF", qualche idea? schermata: i.imgur.com/fOaGp.jpg
sirgeo,

0

Sulla base dei contributi di @Guest e @bteranUFA ho messo insieme uno script e una cassetta degli attrezzi di Python. Esporta tutto MXD da una cartella di input in una posizione di output.

Da qui scaricare ArcPlus.tbxe Scripts\ExportFolder2PDF.pysalvare da qualche parte utile, quindi leggere le note di utilizzo se necessario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.