No. You can run any arcpy funciton outside of an arcmap session. This includes changes of extent and printing. Below will allow you to grab an mxd change the dataframe extent and export without ever opening arcmap.
import arcpy
mxd=arcpy.mapping.MapDocument(some mxd path)
dataframe=arcpy.mapping.ListDataFrames(mxd,{wildcards})[0]
newExtent = dataframe.extent
newExtent.XMin, newExtent.YMin = something, something
newExtent.XMax, newExtent.YMax = something, something
dataframe.extent=newExtent
arcpy.mapping.ExportToPDF (mxd,r'path and name to new pdf)