1

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

4

0 に答える 0