I've been using Printer Share. It's not free, but it works really well. You have to access your print requests from the app itself rather than the print button on whatever you are trying to print. When you open PS, it asks what you want to print. GMail, Calendar, SMS, Phone Log, Web page, etc.You can even use a cloud printer.
I think you can try before you buy.