2

I’m building a custom tool, where you input the city and state and the tool outputs an image file of a map with certain features buffered, labeled, etc. I’m running into problems on the last step, exporting to PNG. Here’s the relevant code:

#Set workspace
import arcpy
import arcpy.mapping
import os
arcpy.env.overwriteOutput = True

yourstate = arcpy.GetParameterAsText(0)
city = arcpy.GetParameterAsText(1)
distances = arcpy.GetParameterAsText(2)
folderinput = arcpy.GetParameterAsText(3)
folderinput2 = '"'+ folderinput + '\"'
arcpy.env.workspace = folderinput2

(I deleted a bunch of code here…it’s for editing the mxd based on what state/city you select. FYI the GetParameterAsText(3) input is something like C:\Users\first.last\Desktop\ArcGis\tool)

#exportasapng
mxd = arcpy.mapping.MapDocument("CURRENT")
fullname = '"' + city + yourstate + '.png' + '"'
arcpy.mapping.ExportToPNG(mxd, fullname, resolution=200)

Any suggestions? Here is the error when I try to run the tool:

Traceback (most recent call last):
  File "C:\Users\first.last\Desktop\ArcGis\tool\toolv6.py", line 79, in <module>
    arcpy.mapping.ExportToPNG(mxd, fullname, resolution=200)
  File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\utils.py", line 182, in fn_
    return fn(*args, **kw)
  File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\mapping.py", line 1228, in ExportToPNG
    layout.exportToPNG(*args)
  File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\utils.py", line 182, in fn_
    return fn(*args, **kw)
  File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\arcobjects\mixins.py", line 586, in exportToPNG
    return self._arc_object.exportToPNG(*args)
AttributeError: PageLayoutObject: Error in executing ExportToPNG

If I replace arcpy.mapping.ExportToPNG(mxd, fullname, resolution=200)

with something like the following the tool exports successfully:

arcpy.mapping.ExportToPNG(mxd, "BuffaloNY.png", resolution=200)

….which is frustrating since “BuffaloNY.png” is what is being passed through as the parameter (it’s the result for print = fullname).

I’ve tried lots of minor changes, making sure the arcpy.mapping.ExportToPNG parameter is being passed as a literal string, changing the direction of the slashes, putting in a mxd.save before exporting, inserting the full pathname instead of relying on setting the environment, etc. and nothing is working. From searching around online, it seems like this is a problem other people have run into, but the solution wasn’t readily apparent.

2

I think I found my own solution, which mostly involved the formatting the parameters.

#Set workspace
folderinput = arcpy.GetParameterAsText(3)
arcpy.env.workspace = folderinput

#exportasapng
mxd = arcpy.mapping.MapDocument("CURRENT")
fullname = city + yourstate + '.png'
endname = folderinput + "\\" + fullname
arcpy.mapping.ExportToPNG(mxd, endname, resolution=200)

which seems to work. Thanks!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.