9 votos

¿Exportación por lotes de MXD a archivos PDF mediante ArcGIS Desktop?

Nico Burgerhart hizo un fantástico script llamado "Batch export MXD to PDF" allá por 2008. http://arcscripts.esri.com/details.asp?dbid=14872 ¿Alguna idea de cómo implementarlo en ArcGIS 10? ¿Algo usando Python tal vez? Data Driven Pages no tiene nada comparable que haya podido encontrar.

Aquí están los pasos en el archivo de texto "read me", que no encaja con la nueva barra de menú de 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

7voto

Erik Öjebo Puntos 6937

Exportar documento de mapa a PDF se incluye ahora en el módulo arcpy.mapping

Ejemplo de código de Esri KB Cómo: Exportar documentos de mapas a PDF con 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)

Para un ejemplo más extenso de la caja de herramientas, véase Exportar MXD a PDF cortesía de @bteranUFA

0 votos

Gracias Mapperz, un montón de buenos allí parecen.... seguir recibiendo Error de nombre de archivo Mxd inválido por alguna razón al usar 'Exportar documento de mapa a PDF', ¿alguna idea? captura de pantalla: i.imgur.com/fOaGp.jpg

0 votos

¿Tiene espacios o caracteres especiales en su .mxd?

0 votos

sí.... espacios, guiones bajos y un guión. He aquí algunos ejemplos: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd ¿Crees que tengo que quitar los espacios y guiones? Lo intentaré mañana por la mañana cuando vaya al trabajo a hacer horas extras.

1voto

CodeSlave Puntos 7133

Parece que se trata de un módulo VBA. Si instalas VBA con ArcGIS 10 deberías poder ejecutarlo igualmente. (VBA sigue siendo compatible, pero no lo será en la próxima versión). Un mejor enfoque sería volver a escribir esto como un complemento.

0 votos

Gracias Jakub, ¿hay un enlace con instrucciones paso a paso sobre cómo instalar VBA con ArcGIS 10? cualquier sugerencia sobre cómo volver a escribir como un complemento?

1 votos

Necesitará un archivo de licencia de ESRI y el instalador de VBA es uno de los elementos del DVD de instalación principal. En cuanto al Add-In (perdón, no Add On) hay un poco de curva de aprendizaje con VB .NET pero vale la pena el esfuerzo. Aquí hay un enlace para el tutorial: help.arcgis.com/es/sdk/10.0/arcobjects_net/conceptualhelp/

1voto

Tanktalus Puntos 7940

Agregue el script a una caja de herramientas, luego configure dos parámetros haciendo clic con el botón derecho en la herramienta script y escribiendo en la pantalla nombrada como en la imagen de abajo y eligiendo el tipo de datos de la carpeta como en la imagen de abajo: enter image description here

#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

0voto

Arda Xi Puntos 1099

Mira en este conjunto de herramientas de GP en el Centro de Recursos de ESRI, puede haber algo allí para exportar a PDF en lote.

0 votos

como las mentes - el mismo enlace que yo.

0 votos

Gracias Chad, sigo recibiendo un error de nombre de archivo Mxd inválido por alguna razón cuando se utiliza 'Exportar documento de mapa a PDF', ¿alguna idea? captura de pantalla: i.imgur.com/fOaGp.jpg

0 votos

@Mapperz - ¡D'OH! ¡Mi error!

0voto

Greg Puntos 1756

Basándose en las contribuciones de @Invitado y @bteranUFA he montado un python script y una caja de herramientas. Exporta todos los MXD de una carpeta de entrada a una ubicación de salida.

Desde aquí descargar ArcPlus.tbx y Scripts\ExportFolder2PDF.py y guardar en algún lugar útil, luego leer el notas de uso si es necesario.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X