8个月太晚了,但为了后代......
您正在使自己变得困难-设置重复图层并使用不同的图层,然后调整图层的可见性会容易得多。我对这类事情不熟悉 VBScript,但在 Python 中(使用 ESRI 的库)它看起来像这样 [python 2.6,ArcMap 10 - 仅示例,没有调试过,但我经常做类似的事情] :
from arcpy import mapping
## Load the map from disk
mxdFilePath = "C:\\GIS_Maps_Folder\\MyMap.mxd"
mapDoc = mapping.MapDocument(mxdFilePath)
## Load map elements
dataFrame = mapping.ListDataFrames(mapDoc)[0] #assumes you want the first dataframe; you can also search by name
mxdLayers = mapping.ListLayers(dataFrame)
## Adjust layers
for layer in mxdLayers:
if (layer.name == 'zip'):
zip_lyr = layer
elif(layer.name == 'sample_units'):
labels_lyr = layer
## Print zip code map
zip_lyr.visible = True
zip_lyr.showLabels = True
labels_lyr.visible = False
labels_lyr.showLabels = False
zip_path = "C:\\Output_Folder\\Zips.pdf"
mapping.ExportToPDF(mapDoc, zip_path, layers_attributes="NONE", resolution=150)
## Print labels map
zip_lyr.visible = False
zip_lyr.showLabels = False
labels_lyr.visible = True
labels_lyr.showLabels = True
labels_path = "C:\\Output_Folder\\Labels.pdf"
mapping.ExportToPDF(mapDoc, labels_path, layers_attributes="NONE", resolution=150)
## Combine files (if desired)
pdfDoc = mapping.PDFDocumentCreate("C:\\Output_Folder\\Output.pdf"")
pdfDoc.appendPages(zip_path)
pdfDoc.appendPages(labels_path)
pdfDoc.saveAndClose()
就数据驱动页面而言,您可以一次或循环导出它们,并调整您想要的任何内容,尽管我不确定如果您使用与上述类似的东西,为什么需要这样做。ESRI 文档和示例实际上在这方面做得很好。(您应该能够从该页面轻松访问所有其他 Python 文档。)