Toplu MXD'yi ArcGIS Desktop kullanarak PDF dosyalarına dışa aktarma?


9

Nico Burgerhart 2008'de "Toplu ihracat PDF MXD" geri çağırdı harika bir senaryo yapılan http://arcscripts.esri.com/details.asp?dbid=14872 ArcGIS 10'da nasıl uygulanacağı konusu Herhangi fikirler? Python kullanan bir şey olabilir mi? Veriye Dayalı Sayfalarda bulabildiğim karşılaştırılabilir bir şey yok.

ArcGIS 10'un yeni menü çubuğunda yer almayan beni oku metin dosyasındaki adımlar:

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 

Yanıtlar:


7

Harita Belgesini PDF'ye Dışa Aktar artık arcpy.mapping modülüne dahil edildi

Esri KB kod örneğinin iltihabı Nasıl Yapılır: Python kullanarak PDF'ye harita belgelerini dışa aktarma :

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)

Daha geniş bir Araç Kutusu örneği için @bteranUFA'nın izniyle MXD'yi PDF'ye dışa aktarma konusuna bakın.


Teşekkürler Mapperz, orada iyi olanlar bir sürü gibi .... 'Harita Belgesini PDF olarak dışa aktar' kullanırken herhangi bir nedenden dolayı geçersiz Mxd dosya adı hatası almaya devam edin , herhangi bir fikir? ekran görüntüsü: i.imgur.com/fOaGp.jpg
sirgeo

.Mxd'nizde boşluklar veya özel karakterler var mı?
Mapperz

evet .... boşluklar, alt çizgiler ve kısa çizgi. İşte birkaç örnek: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Sizce boşlukları ve kısa çizgileri çıkarmam gerekiyor mu? yarın sabah biraz fazla mesai yapmak için işe girdiğimde vururum.
sirgeo

1
Teşekkürler Mapperz .... Gerçekten tüm boşlukları, alt çizgileri ve kısa çizgileri kaldırdıktan sonra iyi çalışıyor.
sirgeo

1
Ek bir bağlantı (@ Mapperz'in bağlantısı artık çalışmıyor): support.esri.com/technical-article/000012420
gisnside

1

Görünüşe göre bu bir VBA modülü. VBA'yı ArcGIS 10 ile kurarsanız, aynı şekilde çalıştırabilmeniz gerekir. (VBA hala desteklenmektedir, ancak bir sonraki sürümde olmayacaktır.) Daha iyi bir yaklaşım, bunu bir eklenti olarak yeniden yazmak olacaktır.


Teşekkürler Jakub, ArcGIS 10 ile VBA'nın nasıl kurulacağına dair adım adım talimatlar içeren bir bağlantı var mı? nasıl eklenti olarak yeniden yazmak için herhangi bir öneri?
sirgeo

1
ESRI'den bir lisans dosyasına ihtiyacınız olacak ve VBA yükleyici ana kurulum DVD'sindeki öğelerden biridir. Eklenti gelince (üzgünüm Add On değil) VB .NET ile öğrenme eğrisi biraz var ama çabaya değer. İşte izlenecek yol için bir bağlantı: help.arcgis.com/tr/sdk/10.0/arcobjects_net/conceptualhelp/…
Jakub Sisak GeoGraphics

1

Komut dosyasını bir araç kutusuna ekleyin, ardından komut dosyası aracına sağ tıklayıp aşağıdaki görüntüdeki gibi adlandırılmış ekrana yazarak ve aşağıdaki görüntüdeki gibi klasör veri türünü seçerek iki parametre oluşturun: resim açıklamasını buraya girin

#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

ESRI Kaynak Merkezi'ndeki bu GP araçları kümesine bakın , orada PDF'ye toplu olarak dışa aktarmak için bir şeyler olabilir.


zihinler gibi - benimle aynı bağlantı.
Mapperz

Teşekkürler Çad, 'Harita Belgesini PDF'ye Dışa Aktar' kullanırken herhangi bir nedenle Geçersiz Mxd dosya adı hatası almaya devam ediyorum, herhangi bir fikir? ekran görüntüsü: i.imgur.com/fOaGp.jpg
sirgeo

@Mapperz - D'OH! Benim hatam!
Chad Cooper

'Harita Belgesini PDF'ye Dışa Aktar' seçeneğini kullanırken Geçersiz Mxd dosya adı hatası almaya devam et, herhangi bir fikir? ekran görüntüsü: i.imgur.com/fOaGp.jpg
sirgeo

0

@Guest ve @ bteranUFA'nın katkılarına dayanarak bir python betiği ve araç kutusu bir araya getirdim. Tüm MXD'yi bir giriş klasöründen bir çıkış konumuna dışa aktarır.

Gönderen burada indirmek ArcPlus.tbxve Scripts\ExportFolder2PDF.pyve bir yere kullanışlı kaydedin, daha sonra okunan kullanım notları gerekirse.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.