Пакетный экспорт MXD в файлы PDF с использованием ArcGIS Desktop?

9

Нико Бургерхарт (Nico Burgerhart) создал фантастический скрипт под названием «Пакетный экспорт MXD в PDF» еще в 2008 году. Http://arcscripts.esri.com/details.asp?dbid=14872 Есть идеи, как реализовать его в ArcGIS 10? Возможно, что-то с использованием Python? Страницы, управляемые данными, не имеют ничего похожего, что я мог бы найти.

Вот шаги в текстовом файле read me, который не сочетается с новой строкой меню 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 
sirgeo
источник

Ответы:

7

Экспорт документа карты в PDF теперь включен в модуль arcpy.mapping

Пример кода из Esri KB. Практическое руководство. Экспорт документов карты в PDF с использованием 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)

Для более расширенного примера Toolbox см. Экспорт MXD в PDF благодаря @bteranUFA

Mapperz
источник
Благодаря Mapperz, многие из них выглядят так, будто по какой-то причине при использовании «Экспорта документа карты в PDF» продолжают появляться сообщения об ошибке «Invalid Mxd filename », есть идеи? снимок экрана: i.imgur.com/fOaGp.jpg
sirgeo
У вас есть пробелы или специальные символы в вашем .mxd?
Mapperz
да .... пробелы, подчеркивания и дефис. Вот несколько примеров: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Как вы думаете, мне нужно удалить пробелы и дефисы? Я сделаю снимок завтра утром, когда пойду на работу, чтобы работать сверхурочно.
Сиргео
1
Спасибо Mapperz .... Он действительно работает нормально после удаления всех пробелов, подчеркиваний и дефисов.
Сиргео
1
Дополнительная ссылка (ссылка @ Mapperz больше не работает): support.esri.com/technical-article/000012420
gisnside
1

Похоже, это модуль VBA. Если вы устанавливаете VBA с ArcGIS 10, вы сможете запустить его точно так же. (VBA все еще поддерживается, но не будет в следующей версии.) Лучшим подходом было бы переписать это как дополнение.

Якуб Сисак География
источник
Спасибо, Якуб, есть ли ссылка с пошаговыми инструкциями по установке VBA с ArcGIS 10? Любое предложение о том, как переписать в качестве дополнения?
Сиргео
1
Вам понадобится файл лицензии от ESRI, а установщик VBA является одним из элементов основного установочного DVD. Что касается надстройки (извините, не надстройки), то с VB .NET есть некоторая кривая обучения, но она того стоит. Вот ссылка для прохождения: help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/…
Якуб Сисак
1

Добавьте скрипт в набор инструментов, затем настройте два параметра, щелкнув правой кнопкой мыши инструмент скрипта и набрав на дисплее имя, как показано на рисунке ниже, и выбрав тип данных папки, как на рисунке ниже: введите описание изображения здесь

#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

Посмотрите на этот набор инструментов GP в Ресурсном центре ESRI, там может быть что-то для экспорта в PDF в пакетном режиме.

Чед Купер
источник
как умы - такая же ссылка, как и я.
Mapperz
Спасибо, Чад, я продолжаю получать сообщение об ошибке «Недопустимое имя файла Mxd» по какой-то причине при использовании «Экспорт документа карты в PDF», есть идеи? снимок экрана: i.imgur.com/fOaGp.jpg
sirgeo
@Mapperz - D'OH! Моя ошибка!
Чед Купер
продолжаете получать ошибку Invalid Mxd filename при использовании «Экспорт документа карты в PDF», есть идеи? снимок экрана: i.imgur.com/fOaGp.jpg
sirgeo
0

Опираясь на вклады @Guest и @bteranUFA, я собрал скрипт и набор инструментов для python. Он экспортирует все MXD из входной папки в выходную папку.

От сюда скачать ArcPlus.tbxи Scripts\ExportFolder2PDF.pyи сохранить где - то полезное, то прочитайте примечание использования , если это необходимо.

Мэтт Уилки
источник