Hàng loạt xuất MXD sang tệp PDF bằng ArcGIS Desktop?


9

Nico Burgerhart đã tạo ra một kịch bản tuyệt vời có tên "Batch export MXD to PDF" vào năm 2008 http://arcscripts.esri.com/details.asp?dbid=14872 Bạn có ý tưởng nào để triển khai nó trong ArcGIS 10 không? Một cái gì đó sử dụng Python có lẽ? Các trang hướng dữ liệu không có bất cứ thứ gì có thể so sánh mà tôi có thể tìm thấy.

Dưới đây là các bước trong tệp văn bản đọc cho tôi không hoạt động với thanh menu mới của 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 

Câu trả lời:


7

Xuất tài liệu bản đồ sang PDF hiện được bao gồm trong mô-đun arcpy.micking

Pith mẫu mã từ Esri KB Cách thực hiện: Xuất tài liệu bản đồ sang PDF bằng 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)

Để biết ví dụ về Hộp công cụ mở rộng hơn, hãy xem Xuất MXD sang PDF với sự cho phép của @bteranUFA


Cảm ơn Mapperz, rất nhiều người giỏi ở đó trông giống như .... tiếp tục gặp lỗi tên tệp Mxd không hợp lệ vì một số lý do khi sử dụng 'Xuất tài liệu bản đồ sang PDF', bạn có ý tưởng gì không? ảnh chụp màn hình: i.imgur.com/fOaGp.jpg
sirgeo

Bạn có khoảng trắng hoặc ký tự đặc biệt trong .mxd của mình không?
Mapperz

có .... dấu cách, dấu gạch dưới và dấu gạch nối. Dưới đây là một vài ví dụ: PLR11001200_1101A-BO.mxd 1101A_ LT 314.mxd 1101A_BB 300B.mxd 1101A_BO.mxd Bạn có nghĩ rằng tôi cần phải loại bỏ khoảng trắng và dấu gạch nối không? Tôi sẽ cho nó bắn vào sáng mai khi tôi đi làm để làm thêm giờ.
sirgeo

1
Cảm ơn Mapperz .... Nó thực sự hoạt động tốt sau khi loại bỏ tất cả các khoảng trắng, dấu gạch dưới và dấu gạch nối.
sirgeo

1
Một liên kết bổ sung (liên kết của @ Mapperz không còn hoạt động nữa): support.esri.com/technical-article/000012420
gisnside

1

Có vẻ như đây là một mô-đun VBA. Nếu bạn cài đặt VBA với ArcGIS 10, bạn sẽ có thể chạy nó giống như vậy. (VBA vẫn được hỗ trợ, nhưng sẽ không có trong phiên bản tiếp theo.) Cách tiếp cận tốt hơn là viết lại phần này dưới dạng phần bổ trợ.


Cảm ơn Jakub, có liên kết với các hướng dẫn từng bước về cách cài đặt VBA với ArcGIS 10 không? bất kỳ đề nghị về cách viết lại như là một tiện ích bổ sung?
sirgeo

1
Bạn sẽ cần một tệp giấy phép từ ESRI và trình cài đặt VBA là một trong những mục trên DVD cài đặt chính. Đối với Bổ trợ (xin lỗi không phải Thêm), có một chút về đường cong học tập với VB .NET nhưng nó rất đáng để nỗ lực. Đây là một liên kết cho hướng dẫn: help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/ Kẻ
Jakub Sisak GeoGraphics

1

Thêm tập lệnh vào hộp công cụ, sau đó thiết lập hai tham số bằng cách nhấp chuột phải vào công cụ tập lệnh và nhập vào màn hình có tên như hình ảnh bên dưới và chọn loại dữ liệu của thư mục như trong hình ảnh bên dưới: nhập mô tả hình ảnh ở đây

#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

Nhìn vào bộ công cụ GP này trên Trung tâm tài nguyên ESRI, có thể có một cái gì đó trong đó để xuất thành PDF theo lô.


như tâm trí - cùng liên kết với tôi.
Mapperz

Cảm ơn Chad, tôi tiếp tục gặp lỗi tên tệp Mxd không hợp lệ vì một số lý do khi sử dụng 'Xuất tài liệu bản đồ sang PDF', có ý tưởng nào không? ảnh chụp màn hình: i.imgur.com/fOaGp.jpg
sirgeo

@Mapperz - ĐỪNG! Lỗi của tôi!
Chad Cooper

tiếp tục gặp lỗi tên tệp Mxd không hợp lệ khi sử dụng 'Xuất tài liệu bản đồ sang PDF', có ý tưởng nào không? ảnh chụp màn hình: i.imgur.com/fOaGp.jpg
sirgeo

0

Dựa trên sự đóng góp của @Guest và @bteranUFA Tôi đã kết hợp một tập lệnh và hộp công cụ python. Nó xuất tất cả MXD từ một thư mục đầu vào đến một vị trí đầu ra.

Từ đây tải về ArcPlus.tbxScripts\ExportFolder2PDF.pylưu ở đâu đó hữu ích, sau đó đọc ghi chú sử dụng nếu cần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.