The first image printed to PDF is invisible
-
I've been developing an application which user can design a page and print it. My printer function works like this:
@
QPrinter printer;
// some code to configure the printer
QPainter painter;
painter.begin(&printer);
// some code to paint the pages
painter.end();
@And the function that I use to print the images is @painter.drawPixmap();@.
When I show the page in QPrintPreviewDialog, everything is okay. Also when I print the pages there is no problem.
The problem appears when I print the file to PDF. To do this, I change the printer format using @printer.setOutputFormat(QPrinter::PdfFormat);@
The first image that I printed to PDF file becomes invisible. When I print a copy of the same image to the same PDF file, it becomes visible. So the problem is only for the first copy of the image, when I paint the the same image second time or third time there is no problem.(These are not the same QPixmap objects. These are different QPixmap objects which are created from the same image file.) After painting an image, if I paint a different image for the first time, it also appears invisible.
I've spent a lot of time to solve the problem but still couldn't find the solution.
I would appreciate any suggestions please. -
Do you have a small example project that shows this issue for us to play with?
This does sound very much like a bug to me, so maybe you should file it "here":http://bugreports.qt.nokia.com/. A small example project attached to the report will help a lot to fix the issue as the developers will take way less time to reproduce the issue.
Thanks!
-
Tobias, I think that it also can be a problem in code. Not ever heard about problems on printing to pdf, so let's wait for code sample.
-
I have no problem with Pdf
Simple example
@
QTextEdit document;
document.append("test page");
QPrinter printerPdf(QPrinter::HighResolution);
printerPdf.setPageMargins(20,10,20,20,QPrinter::Millimeter);
printerPdf.setOutputFileName("test.pdf");
document.print(&printerPdf);
@ -
stuk, post author said about problems printing images on pdf. Are you print text or images?
-
Yes, sorry i post mistake example...something like this..
@
QPixmap pix(":/img/test.jpg");
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("test.pdf");
QPainter painter;
painter.begin(&printer);
painter.drawPixmap(0,0,100,100,pix);
painter.end();
@ -
I've found that the problem appears when I set the brush to Qt::transparent before painting the pixmap.
@
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("output.pdf");
QPainter painter;
painter.begin(&printer);
painter.setBrush(Qt::transparent);
painter.drawPixmap(0, 0, 100, 100, QPixmap("sample.png"));
painter.drawPixmap(200, 0, 100, 100, QPixmap("sample.png"));
painter.drawPixmap(0, 100, 100, 100, QPixmap("sample2.png"));
painter.drawPixmap(200, 100, 100, 100, QPixmap("sample2.png"));
painter.end();
@
Only the second sample.png and the second sample2.png will be visible. -
Feoran, please post link to bug here.
-