テキストと 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