Printing in a Flash/Flex application can be tricky to get right. I've been working on a very print-heavy application recently. We've been having a long standing intermittent bug where we print a large document, but some things on that document that were created through the Flash drawing API wouldn't be on the paper.
We added a
var options:Object = canvas.prepareToPrint( canvas );
Before the print and a
canvas.finishPrint( options, canvas);
After the print, and it seems to have solved our problem even though the documentation says we shouldn't ordinarily need to explicitly call those.