In your example, in the PageReceived method, you're calling the DisplayPage routine before saving the file.
There's no need to call displaypage, or even have it there, because this window will be invisible to the user.
The displayPage routine calls the TextOnly method - which is removing stuff from the PNG - hence your problem.
Cheers
Bruce