I tested my code on having it paint to a pixmap instead of a printer and it comes out fine ( once I fill my pixmap with Qt::white before I paint stuff to it ).
This immediately suggests the problem is with different device characteristics. I'll have a look at code you provided and see what I can find. Just please, next time try to use internal capabilities of the forum to host images or code instead of using external sites.
Bookmarks