Batch mengekspor MXD ke file PDF menggunakan ArcGIS Desktop?

9

Nico Burgerhart membuat skrip fantastis yang disebut "Batch export MXD to PDF" pada tahun 2008. http://arcscripts.esri.com/details.asp?dbid=14872 Ada ide bagaimana cara mengimplementasikannya di ArcGIS 10? Sesuatu yang menggunakan Python mungkin? Data Driven Pages tidak memiliki apa pun yang dapat saya temukan.

Inilah langkah-langkah di file teks read me yang tidak cocok dengan bilah menu baru 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
sumber

Jawaban:

7

Ekspor Peta Dokumen ke PDF sekarang termasuk dalam modul arcpy.mapping

Intisari contoh kode dari Esri KB Cara: Ekspor dokumen peta ke PDF menggunakan 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)

Untuk contoh Toolbox yang lebih luas lihat Ekspor MXD ke PDF milik @bteranUFA

Mapperz
sumber
Terima kasih Mapperz, banyak yang bagus di sana seperti .... terus mendapatkan kesalahan nama file Mxd Tidak Valid karena beberapa alasan ketika menggunakan 'Ekspor Peta Dokumen ke PDF', ada ide? tangkapan
sirgeo
Apakah Anda memiliki spasi atau karakter khusus di .mxd Anda?
Mapperz
ya .... spasi, garis bawah, dan tanda hubung. Berikut beberapa contoh: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Apakah Anda pikir saya perlu menghilangkan spasi dan tanda hubung? Saya akan mencobanya besok pagi ketika saya pergi bekerja untuk bekerja lembur.
sirgeo
1
Terima kasih Mapperz .... Ini memang berfungsi dengan baik setelah menghapus semua spasi, garis bawah, dan tanda hubung.
sirgeo
1
Tautan tambahan (tautan @ Mapperz tidak berfungsi lagi): support.esri.com/technical-article/000012420
gisnside
1

Sepertinya ini adalah modul VBA. Jika Anda menginstal VBA dengan ArcGIS 10 Anda harus dapat menjalankannya sama. (VBA masih didukung, tetapi tidak akan ada di rilis berikutnya.) Pendekatan yang lebih baik adalah menulis ulang ini sebagai tambahan.

Jakub Sisak GeoGraphics
sumber
Terima kasih Jakub, apakah ada tautan dengan petunjuk langkah demi langkah tentang cara menginstal VBA dengan ArcGIS 10? ada saran tentang cara menulis ulang sebagai add-on?
sirgeo
1
Anda akan memerlukan file lisensi dari ESRI dan penginstal VBA adalah salah satu item pada DVD instalasi utama. Adapun Add-In (maaf bukan Add On) ada sedikit kurva belajar dengan VB. NET tapi itu sepadan dengan usaha. Berikut ini tautan untuk langkah- langkahnya
Jakub Sisak GeoGraphics
1

Tambahkan skrip ke kotak alat, lalu atur dua parameter dengan mengklik kanan pada alat skrip dan mengetikkan tampilan bernama seperti gambar di bawah ini dan memilih tipe data folder seperti pada gambar di bawah: masukkan deskripsi gambar di sini

#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
Tamu
sumber
0

Lihat di set alat GP ini di ESRI Resource Center, mungkin ada sesuatu di sana untuk mengekspor ke PDF dalam batch.

Chad Cooper
sumber
seperti pikiran - tautan yang sama dengan saya.
Mapperz
Terima kasih Chad, saya terus mendapatkan kesalahan nama file Mxd Tidak Valid karena beberapa alasan ketika menggunakan 'Ekspor Peta Dokumen ke PDF', ada ide? tangkapan layar: i.imgur.com/fOaGp.jpg
sirgeo
@Mapperz - D'OH! Kesalahanku!
Chad Cooper
terus mendapatkan kesalahan nama file Mxd Tidak Valid saat menggunakan 'Ekspor Dokumen Peta ke PDF', ada ide? tangkapan
sirgeo
0

Membangun kontribusi dari @Guest dan @bteranUFA Saya telah membuat skrip python dan toolbox. Ini mengekspor semua MXD dari folder input ke lokasi output.

Dari sini unduh ArcPlus.tbxdan Scripts\ExportFolder2PDF.pysimpan tempat yang berguna, lalu baca catatan penggunaan jika diperlukan.

matt wilkie
sumber