Ok, so I got the bright idea to make a printing system based on QLayouts. This 
saves me from ding a lot of calculations and is dearly perfect. But there are a 
few rough corners and one that I cannot figure out. 

First the approach:
I use ui files to create multiple UI Widgets which are then directed at a 
painter, via QWidget::render();
This largely works, but I have to 
1. Size the Widget tree to the print device width - varies on your DPI (300, 
600, 1200 dpi)
2. Scale fonts in relation to the screen DPI (300 dpi / 72 DPI = 4) so for all 
the text, set the font to 4x
3. Use a proxy painter to prevent the render() from calling painter end() which 
tells PdfWriter to close the file. My proxy painter does not implement end() in 
a meaningful way, I have a realEnd() that does it.
4. Looping through the widgets, move the vertical offset down the page by the 
last widget's height(), when a widget won't fit on a page, call newPage() and 
reset the vertical offset to 0
-- the above works, below is the problem --
5. When using drawPixmap(), the coordinates seem to be translated relative to a 
container. That is, if I place a QFrame where the image should be, the frame is 
drawn in the right place. The image is drawn at some offset to that, usually 
only partially in the box, lower and further right. If I modify the proxy 
painter to reset the top left of the dest rest to 0,0, then the image is drawn 
in the box.  

If anything was the case, I wound expect it to work, not to have some wacky 
offset, since children are painted relative to their parent. I'm thinking I 
need some QPainter save() restore() functionality, but I'm not sure how that is 
supposed to work. If it worked as I expected, the image would be at 0,0 of the 
document. 

How can I get this working?
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to