View Full Version : QPrinter: PdfFormat and transparency

31st March 2011, 16:25

I'm exporting a QGraphicsView to various file formats: actually pdf and the image formats supported by QImage. My problem is that I loose my items transparency when exporting to pdf although the code is very similar.
Here is the image export code:

QImage image(size, QImage::Format_ARGB32_Premultiplied);
image.fill( view->backgroundBrush().color().rgba() );
paintOnDevice (&image, view);
image.save( fileName );

and here is the pdf export

QPrinter printer (QPrinter::HighResolution);
printer.setOutputFileName( QString(fileName) );
printer.setOutputFormat( QPrinter::PdfFormat );
printer.setPaperSize( size , QPrinter::Point );
paintOnDevice (&printer, view);

where paintOnDevice is simply:

QPainter painter(device);
painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
view->render( &painter );

and where view is a QGraphicsView pointer.

I'm using Qt 4.7.0 and I get the same results on Mac OS X and Ubuntu Maverick 64bits. On windows, I'm using an older version (4.6.2) but I get the same results.
Any help would be appreciated