Solved! Go to Solution.
Yep, that is what I think. Please, take a look at the code to see if I changed stuff correctly. I figured out to use ListLayers. See how close I am.
import arcpy, os, sys from os import path as p from arcpy import mapping as m #Make parameters for people to choose mxd and folder of PDFs to compare mxdList = string.split(arcpy.GetParameterAsText(0), ";") pdf_path = arcpy.GetParameterAsText(1) report = {} #Use Search Cursor to go through Attribuite Table to get Sheet number info for mapDoc in mxdList: arcpy.AddMessage(mapDoc) mxd = arcpy.mapping.MapDocument(mapDoc) df = arcpy.mapping.ListLayers(mxd, "*,Traff Proj")[0] for lyr in m.ListLayers(mxd, "*, Grid"): if lyr.description == "*, Grid": max_list = [] rows = arcpy.SearchCursor(lyr) for row in rows: max_list.append(row.Sheet_ID) sheet_count = max(max_list) arcpy.AddMessage('Sheet count: %s'%sheet_count) print 'Sheet count: %s'%sheet_count else: arcpy.AddError('No Layers in %s match data source'%mapDoc) page_list = []
page_list = []
arcpy.env.workspace = ws = pdf_path
for pdf_doc in arcpy.ListFiles('*.pdf'):
page_list.append(int(''.join([i for i in pdf_doc.split('.')[0] if i.isdigit()])))
page_count = max(page_list)
arcpy.AddMessage('PDF page count: %s' page_count)
if page_count == sheet_count:
arcpy.AddMessage('%s Sheet Count matches number of pages in %s' %(mapDoc,pdf_doc))
else:
arcpy.AddMessage('%s Sheet Count does not match number of pages in %s' %(mapDoc,pdf_doc))
It doesn't like my code for sheet count. I've attached to error again for you. It finishes counting the PDFs but it is puzzled on how to give me a sheet count. Error is Sheet_count not defined. So wouldn't I need to write, sheet_count = arcpy.mapping.ListLayers.
import arcpy, os, sys
from os import path as p
from arcpy import mapping as m
#Make parameters for people to choose mxd and folder of PDFs to compare
mxdList = string.split(arcpy.GetParameterAsText(0), ";")
pdf_path = arcpy.GetParameterAsText(1)
report = {}
#Use Search Cursor to go through Attribuite Table to get Sheet number info
for mapDoc in mxdList:
arcpy.AddMessage(mapDoc)
mxd = arcpy.mapping.MapDocument(mapDoc)
df = arcpy.mapping.ListLayers(mxd, "*,Traff Proj")[0]
for lyr in m.ListLayers(mxd, "*, Grid"):
if lyr.description == "*, Grid":
max_list = []
rows = arcpy.SearchCursor(lyr)
for row in rows:
max_list.append(row.Sheet_ID)
else:
arcpy.AddError('No Layers in %s match data source'%mapDoc)
sheet_count = max(max_list)
arcpy.AddMessage('Sheet count: %s'%sheet_count)
print 'Sheet count: %s'%sheet_count
page_list = []
arcpy.env.workspace = ws = pdf_path
for pdf_doc in arcpy.ListFiles('*.pdf'):
page_list.append(int(''.join([i for i in pdf_doc.split('.')[0] if i.isdigit()])))
page_count = max(page_list)
arcpy.AddMessage('PDF page count: %s' page_count)
if page_count == sheet_count:
arcpy.AddMessage('%s Sheet Count matches number of pages in %s' %(mapDoc,pdf_doc))
else:
arcpy.AddMessage('%s Sheet Count does not match number of pages in %s' %(mapDoc,pdf_doc))
import arcpy, os, sys, string
from os import path as p
from arcpy import mapping as m
#Make parameters for people to choose mxd and folder of PDFs to compare
mxdList = string.split(arcpy.GetParameterAsText(0), ";")
pdf_path = arcpy.GetParameterAsText(1)
#Use Search Cursor to go through Attribuite Table to get Sheet number info
sheet_count = 0
for mapDoc in mxdList:
arcpy.AddMessage(mapDoc)
mxd = arcpy.mapping.MapDocument(mapDoc)
for lyr in m.ListLayers(mxd, "*, Grid"):
if lyr.description == "*, Grid":
max_list = []
rows = arcpy.SearchCursor(lyr)
for row in rows:
max_list.append(row.Sheet_ID)
sheet_count = max(max_list)
arcpy.AddMessage('Sheet count: %s'%sheet_count)
print 'Sheet count: %s'%sheet_count
else:
arcpy.AddError('No Layers in %s match data source'%mapDoc)
page_list = []
# List all PDF's in the pdf_path folder
arcpy.env.workspace = ws = pdf_path
for pdf_doc in arcpy.ListFiles('*.pdf'):
page_list.append(int(''.join([i for i in pdf_doc.split('.')[0] if i.isdigit()])))
page_count = max(page_list)
arcpy.AddMessage('PDF Page Count: %s' %page_count)
if page_count == sheet_count:
arcpy.AddMessage('%s Sheet Count matches number of pages in %s' %(mapDoc,pdf_doc))
else:
arcpy.AddMessage('%s Sheet Count does not match number of pages in %s' %(mapDoc,pdf_doc))