我有一些文本和一个 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 文件外,它工作正常。
我试图通过将以下行添加到 draw 方法来解决问题:
R_img.setDevicePixelRatio(5);
Painter->drawImage(0, 0, R_img.scaled(500, 500, Qt::KeepAspectRatio, Qt::SmoothTransformation));
之后创建的 pdf 看起来很好,但打印的文件仍然是像素化的。请查看附加图像“使用 setDevicePixelRatio 打印的 pdf”和“使用 setDevicePixelRatio 创建的 pdf”。
谁能给我一些想法我在这里做错了什么?
我试图通过更改打印机驱动程序中的分辨率来解决该问题,但没有奏效。对我来说,奇怪的是 Elipse 在任何情况下看起来都很好。
不幸的是,附加的 R.png 只是演示我的问题的一个例子。它不能用仅绘制文本来代替。
提前感谢您的帮助!
使用 setDevicePixelRatio 打印的 pdf 使用 setDevicePixelRatio 创建的 pdf