Select to view content in your preferred language

Rounded Rectangles Not Exporting

1330
2
11-14-2022 08:18 AM
JohnWright
Emerging Contributor

I recently inserted "rounded rectangle" graphics into my Pro project and everything looks great.  When I export, however, they come out as traditional rectangles.  No matter what format I export them to (PDF/JPEG/TIFF/PNG) , it doesn't change.  If I increase the DPI and print quality, still nothing changes, same thing.   I have not figured out a way to export these rounded rectangles.  Everything else in my map exports as expected except these. 

Is there something I'm missing or could do differently when I export?  Could it be a bug?

In ArcPro:  Note the rounded corners

In ArcPro:  Note the rounded cornersIn ArcPro: Note the rounded corners      

In my exported documents:  straight rectangle corners

RoundedRectangleBad.JPG

 

2 Replies
AubriKinghorn
Esri Regular Contributor

Unfortunately this is a known bug in ArcGIS Pro 3.0 and earlier. It should be addressed in the Pro 3.1 release. In the meantime, you can work around the issue by exporting via the Python window instead of the export pane.  You can learn more about exporting via Python here https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/layout-class.htm

And here is a sample script you can paste in the Python window to export all layouts in a project to PDF.

##Export to PDF
import time
aprx = arcpy.mp.ArcGISProject("CURRENT")
aprx.listLayouts()
for lyt in aprx.listLayouts():
#Parameters: output name, resolution, image quality, compress vector graphics, image compression, embed fonts, layer attributes, georeference, jpeg compression, clip to elements, output as image, embed color profile
#Image quality: "BEST", "BETTER", "NORMAL", "FASTER", "FASTEST"
#Image compression: "ADAPTIVE", "DEFLATE", "JPEG", "LZW", "NONE", "RLE"
#Layer attributes: "LAYERS_ONLY", "LAYERS_AND_ATTRIBUTES", "NONE"
	start = time.time()
	lyt.exportToPDF(f"C:\Temp\{lyt.name}.pdf", 150, "BEST", True, "ADAPTIVE", True, "LAYERS_ONLY", True, 80, False, False, False)
	end = time.time()
	print(f"{lyt.name} exported in {end - start} seconds")
print("Done")
Cheers,
Aubri
kurtsnider
Emerging Contributor

John beat me to it.  Looking forward to 3.1!

0 Kudos