Eksportowanie wsadowe MXD do plików PDF za pomocą ArcGIS Desktop?

9

Nico Burgerhart napisał fantastyczny skrypt o nazwie „Eksport partii MXD do PDF” w 2008 roku. Http://arcscripts.esri.com/details.asp?dbid=14872 Jakieś pomysły na wdrożenie go w ArcGIS 10? Może coś używa Pythona? Strony oparte na danych nie mają nic porównywalnego, co mogłem znaleźć.

Oto kroki w czytaniu pliku tekstowego, który nie jiwa się z nowym paskiem menu 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 ([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
źródło

Odpowiedzi:

7

Eksportuj dokument mapy do pliku PDF jest teraz zawarty w module arcpy.mapping

Próbka kodu próbki z Esri KB Porady : Eksportowanie dokumentów mapowych do formatu PDF za pomocą Pythona :

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)

Bardziej rozbudowany przykład Toolbox znajduje się w artykule Eksport MXD do PDF dzięki uprzejmości @bteranUFA

Mapperz
źródło
Dzięki Mapperz, wygląda na to, że wiele dobrych… nadal pojawia się błąd nieprawidłowej nazwy pliku Mxd z jakiegoś powodu podczas korzystania z opcji „Eksportuj dokument mapy do pliku PDF”, jakieś pomysły? zrzut ekranu: i.imgur.com/fOaGp.jpg
sirgeo
Czy masz w swoim .mxd spacje lub znaki specjalne?
Mapperz
tak .... spacje, podkreślenia i łącznik. Oto kilka przykładów: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Czy uważasz, że muszę usunąć spacje i łączniki? dam mu szansę jutro rano, kiedy idę do pracy, by zrobić sobie nadgodziny.
sirgeo,
1
Dzięki Mapperz .... To naprawdę działa dobrze po usunięciu wszystkich spacji, podkreślników i łączników.
Sirgeo
1
Dodatkowy link (link @ Mapperz już nie działa): support.esri.com/technical-article/000012420
gisnside,
1

Wygląda na to, że jest to moduł VBA. Jeśli zainstalujesz VBA z ArcGIS 10, powinieneś być w stanie uruchomić go tak samo. (VBA jest nadal obsługiwany, ale nie będzie go w następnym wydaniu.) Lepszym rozwiązaniem byłoby przepisanie go jako dodatku.

Jakub Sisak GeoGraphics
źródło
Dzięki, Jakub, czy jest link z instrukcjami krok po kroku, jak zainstalować VBA z ArcGIS 10? jakieś sugestie, jak ponownie napisać jako dodatek?
sirgeo
1
Potrzebny będzie plik licencji z ESRI, a instalator VBA jest jednym z elementów na głównym instalacyjnym dysku DVD. Jeśli chodzi o Add-In (przepraszam, że nie Add On), jest trochę krzywej uczenia się w VB .NET, ale jest to warte wysiłku. Oto link do przewodnika: help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/…
Jakub Sisak GeoGraphics
1

Dodaj skrypt do przybornika, a następnie ustaw dwa parametry, klikając prawym przyciskiem myszy narzędzie skryptowe i wpisując na ekranie o nazwie jak na obrazku poniżej i wybierając typ danych folderu jak na obrazku poniżej: wprowadź opis zdjęcia tutaj

#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
Gość
źródło
0

Spójrz w tym zestawie narzędzi GP w Centrum zasobów ESRI, może tam być coś do eksportowania do pliku PDF wsadowo.

Chad Cooper
źródło
jak umysły - ten sam link co ja.
Mapperz
Dzięki Czad, ciągle pojawia się błąd nieprawidłowej nazwy pliku Mxd z jakiegoś powodu podczas korzystania z opcji „Eksportuj dokument mapy do pliku PDF”, jakieś pomysły? zrzut ekranu: i.imgur.com/fOaGp.jpg
sirgeo
@Mapperz - D'OH! Mój błąd!
Chad Cooper,
nadal pojawia się błąd nieprawidłowej nazwy pliku Mxd podczas korzystania z opcji „Eksportuj dokument mapy do pliku PDF”, jakieś pomysły? zrzut ekranu: i.imgur.com/fOaGp.jpg
sirgeo
0

Opierając się na wkładach @Guest i @bteranUFA, stworzyłem skrypt Pythona i zestaw narzędzi. Eksportuje wszystkie MXD z folderu wejściowego do lokalizacji wyjściowej.

Od tutaj pobrać ArcPlus.tbxi Scripts\ExportFolder2PDF.pyi zapisać gdzieś użyteczne, a następnie przeczytać Uwagi dotyczące wykorzystania w razie potrzeby.

matowe wilkie
źródło