Hi Pu and welcome to our forum!
Yeah, this is tricky. You could use merge forms, load all forms into one form and print successively from that form (which will require Full Trust). You could also create a command line tool that opened one form after another. In that special "for printing" InfoPath form, use an OnLoad event handler to print the form and then close. Hope that works although it may not if there's a bunch of post initialization.
Patrick Halstead
Project Manager at Qdabra