나는 당신의 요구가 사용하는 것을 간단한 파이썬 스크립트 작성 후 포함 된 모든 레이어를 하나의지도를함으로써 가장 쉽고 직관적으로 충족하고 거라고 생각 레이어 .visible 사용하여 각 페이지 내보내기 전에 온 / 오프 층 전환에 ExportToPDF을 .
그런 다음 PDFDocument 를 사용하여 페이지를 단일 PDF 파일에 추가 할 수 있습니다.
이 기술은 Esri 블로그 에 Python 및 arcpy.mapping과 데이터 구동 페이지 결합 이라는 코드에 설명되어 있으며 아래 코드도 포함되어 있습니다.
예를 들어, 각 페이지마다 다른 테마를 지정하여 여러 페이지로 주제별 아틀라스를 만들 수 있습니다. 다음 예제는 선택한 구획을 확대하고, 다른 도면층 가시성을 토글하고, 토양 맵, 플러드 맵 및 구역 지정 맵으로 구획 보고서를 작성하기 위해 여러 테마의 레이아웃을 내 보냅니다.
import arcpy, os
#Specify output path and final output PDF
outPath = r”C:MyProjectoutput\”
finalPdf = arcpy.mapping.PDFDocumentCreate(outPath + “ParcelReport.pdf”)
#Specify the map document and the data frame
mxd = arcpy.mapping.MapDocument(r”C:MyProjectMyParcelMap.mxd”)
df = arcpy.mapping.ListDataFrames(mxd, “Layers”)[0]
#Select a parcel using the LocAddress attribute and zoom to selected
parcelLayer = arcpy.mapping.ListLayers(mxd, “Parcels”, df)[0]
arcpy.SelectLayerByAttribute_management(parcelLayer, “NEW_SELECTION”, “”LocAddress” = ’519 Main St’”)
df.zoomToSelectedFeatures()
#Turn on visibility for each theme and export the page
lyrList = ["Soils", "Floodplains", "Zones"]
for lyrName in lyrList:
lyr = arcpy.mapping.ListLayers(mxd, lyrName, df)[0]
lyr.visible = True
#Export each theme to a temporary PDF and append to the final PDF
tmpPdf = outPath + lyrName + “_temp.pdf”
if os.path.exists(tmpPdf):
os.remove(tmpPdf)
arcpy.mapping.ExportToPDF(mxd, tmpPdf)
finalPdf.appendPages(tmpPdf)
#Turn off layer visibility and clean up for next pass through the loop
lyr.visible = False
del lyr, tmpPdf
del mxd, df, finalPdf