I am trying to use a web browser control on an ASP.NET page to print HTML from a server. I create a new WebBrowser control, add a DocumentCompleted handler that calls WebBrowser.Print() and then Navigate to the page I want to print. If I use the <ASPCOMPAT="true" /> tag, the DocumentCompleted event occurs but nothing prints. If I set <ASPCOMPAT="false" /> and run my code in separate STA thread, the DocumentCompleted event does not fire. If I do the same thing in a desktop app rom the main thread, it prints fine, even though I have not added my control to the Controls collection of the Form I am on. If I try to do the printing from a separate thread in the desktop app, it the event does not fire as above. Can someone explain this? Is there a way to get around it?