Is there a way to convert procedural textures to UV maps without rendering a final image first?
The only way to do this is to bake the render into an image.

Of course this requires you to first unwrap the mesh with non-overlapping coordinates ('Smart project' or 'Lightmap Pack' can help here to save doing it manually).

Note, this process could be automated through a script (probably someone has done this before, its not so hard to do for someone already familiar with our API).

For all selected objects:


Add UV layer
Unwrap.
Bake textures into the image.
Save each image to a name based on the object.