In my report designer I am printing about 200 items by QGraphicsScene::render to the QPainter associated to a QPrinter, and the output creates 2 pages. The painting/rendering performance is poor and very dependant of the printer type and the resolution selected in the printer settings. Previewing the same data on the screen renders in estimated 0.1 seconds just to have an idea.

For example when printing to a OfficeJet G85 color inkjet at normal print quality, the rendering takes about 2 or 3 seconds. When printing to a Brother 2035 laser at normal quality with 300 DPI, the rendering takes about 20 seconds, alas even about 10 times what the inkjet needs for comparable quality. Selecting high quality 600DPI on the laser will make the rendering process use more that one minute, which is inacceptable for production use, don't even think about real lists with hundrets of pages that way.

(Crystal reports to compare would render such data in subseconds on the same printers in high resolution!)

Both printers are attached to another PC in the LAN by USB, and made available as network share. During the rendering time CPU usage is quite low, hardly above the idle load. There is also no noticeable disk activity during this time.

Has anybody also seen such drastic printer dependent performance issues on different print devices?

What could be done to improve performance, should I first render everything on a pixmap and then send the page as pixmap to the printer, would that make a difference?