Depending on whether you're able to modify the source of the SWF, you could on, say, the click of a button, create a BitmapData object from the stage contents and then encode that data into an image format. You'd then use AIR to save it to the desktop or a server side language to save it to a server, again depending on your requirements. I can elaborate further if this direction sounds reasonable.
Reply to comment:
Yes, you're right, you could easily do it loading the external SWF as well.
The following is a rough outline of what you need to do:
Loading the external SWF is as simple as this:
var loader:Loader = new Loader();
var urlRequest:URLRequest = new
URLRequest("url-to-external.swf");
loader.load(urlRequest);
Then copy the external SWF content into a BitmapData object (perhaps on some event, like the click of a button):
var bitmapData:BitmapData = new
BitmapData(loader.width,
loader.height);
bitmapData.draw(loader);
However, it may require some extra work depending on what your source SWF looks like. You may especially need to take the (x,y) coordinates of the contents within the loaded SWF into account as they may create an offset of what is drawn to the BitmapData object.
You can then use the BitmapData object to create an image file, say a PNG, using the PNGEncoder class from the AS3 core lib: http://code.google.com/p/as3corelib/