Печать png является пиксельной
У меня есть текст и файл R.png. Это я хочу напечатать в PDF-файл и на "настоящий" принтер.
Я делаю это с помощью следующего кода:
draw(QPainter *Painter)
{
R_img = QImage("c:/R.png");
Painter->drawImage(0, 0, R_img.scaled(100, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation));
Painter->drawEllipse(QRect(2, 60, 20, 10));
QFont font = Painter->font();
font.setPixelSize(10);
Painter->setFont(font);
Painter->drawText(2, 100,"my Text");
}
...
// saving as *.pdf
QPrinter pdfprinter;
pdfprinter.setOutputFileName("c:/test.pdf");
QPainter pdfPainter(&pdfprinter);
draw(&pdfPainter);
// printing to "real" printer
QPrinter printer;
printer.setPrinterName("FreePDF");
QPainter printPainter(&printer);
draw(&printPainter);
...
Это прекрасно работает, за исключением пиксельного файла R.png.
Я пытался решить проблему, добавив следующую строку в метод рисования:
R_img.setDevicePixelRatio(5);
Painter->drawImage(0, 0, R_img.scaled(500, 500, Qt::KeepAspectRatio, Qt::SmoothTransformation));
После этого созданный pdf выглядит нормально, но распечатанный файл все еще имеет пикселизацию. Пожалуйста, посмотрите на приложенные изображения "печатный PDF с setDevicePixelRatio" и "созданный PDF с setDevicePixelRatio".
Кто-нибудь может подсказать, пожалуйста, что я здесь делаю не так?
Я попытался решить эту проблему, изменив разрешение в моем принтере, но это не сработало. Для меня странная вещь в том, что Elipse выглядит просто отлично в каждом случае.
К сожалению, прилагаемый R.png является лишь примером, демонстрирующим мою проблему. Его нельзя заменить рисованием только текста.
Спасибо за помощь заранее!
печатный PDF с setDevicePixelRatio созданный PDF с setDevicePixelRatio