Пакетний експорт MXD у файли PDF за допомогою ArcGIS Desktop?


9

Ніко Burgerhart зробив фантастичний сценарій під назвою «експорт Пакетний МКД в PDF» назад в 2008 році http://arcscripts.esri.com/details.asp?dbid=14872 Будь-які ідеї , як реалізувати це в ArcGIS 10? Щось можливо, використовуючи Python? Сторінки, керовані даними, не мають нічого подібного, що я міг би знайти.

Ось етапи, прочитані в текстовому файлі, який не відповідає новій панелі меню 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 

Відповіді:


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)

Для більш розширеного прикладу панелі інструментів див. Експорт MXD в PDF за допомогою @bteranUFA


Дякую Mapperz, багато хороших там виглядають .... продовжуйте отримувати неправильну помилку файлу Mxd чомусь під час використання "Експортувати документ з картою в PDF", будь-які ідеї? знімок екрана: i.imgur.com/fOaGp.jpg
sirgeo

Чи є у вашому .mxd пробіли чи спеціальні символи?
Mapperz

так .... пробіли, підкреслення та дефіс. Ось кілька прикладів: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Ви думаєте, мені потрібно вивести пробіли та дефіси? Я застрелюсь завтра вранці, коли я прийду на роботу, щоб зробити деякий понаднормовий час.
sirgeo

1
Дякую Mapperz .... Це дійсно чудово працює після видалення всіх пробілів, підкреслення та дефісів.
sirgeo

1
Додаткове посилання (@ посилання Mapperz більше не працює): support.esri.com/technical-article/000012420
gisnside

1

Схоже, це модуль VBA. Якщо ви встановите VBA за допомогою ArcGIS 10, ви маєте змогу запустити його так само. (VBA все ще підтримується, але не буде в наступному випуску.) Кращим підходом було б переписати це як доповнення.


Дякую Якубу, чи є посилання з покроковою інструкцією щодо встановлення VBA з ArcGIS 10? будь-які пропозиції щодо того, як переписати як доповнення?
sirgeo

1
Вам знадобиться файл ліцензії від інсталятора ESRI, а інсталятор VBA є одним із елементів на основному інсталяційному DVD. Щодо надбудови (вибачте, не додайте ввімкнено), тут є трохи кривої навчання з VB .NET, але це варто вартих зусиль. Ось посилання на посібник: help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/…
Jakub Sisak GeoGraphics

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! Моя помилка!
Чад Купер

продовжувати отримувати помилкову помилку імені файлу Mxd при використанні "Експортувати документ карти в PDF", будь-які ідеї? знімок екрана: i.imgur.com/fOaGp.jpg
sirgeo

0

Спираючись на внески @Guest та @bteranUFA, я зібрав сценарій пітона та інструментарій. Він експортує всі MXD з папки вводу у вихідне місце.

Від сюди завантажити ArcPlus.tbxі Scripts\ExportFolder2PDF.pyі зберегти де - то корисне, то прочитайте примітка використання , якщо це необхідно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.