Qt5.3.0で印刷するとずれる

Qtを利用して、下記のようなプログラムを作成しました。

    void MainWindow::on_pushButton_clicked()
    {
        QPrintDialog dlg(this);
        if (dlg.exec() == QDialog::Accepted) {
            QPrinter *printer = dlg.printer();
            printer->setPaperSize(QPrinter::A4);
            printer->setOrientation(QPrinter::Portrait);
            printer->setPageMargins(0, 0, 0, 0, QPrinter::Millimeter);
            printer->setResolution(254);
            QPainter painter(printer);
            painter.setPen(QPen(Qt::black, 20));
            painter.drawEllipse(0, 0, 2100, 2970);
        }
    }

これは、A4サイズの紙いっぱいに丸を印刷するプログラムです。Windows上で、MSVC2010を使用して開発しました。

これを実行すると、Qt4.8.5とQt5.2.1では、用紙の中央に丸が印刷されるのですが、Qt5.3.0では、右下方向に10mm程度ずれて印刷されてしまいます。

printsample

※周囲に余白がありますが、これはプリンタの印刷限界で、縁なし印刷ができないためであり、マージンではありません。

プリンタは、Canon LBP-1310、RICOH C230L、Brother MFC-675CDで、どれも同じ現象でした。ただし、PDF出力用の仮想プリンタドライバであるAdobe Acrobat DistillerとフリーのCubePDFでは、正常なPDFファイルが作成されました。

この症状の解決策をご存じの方はいらっしゃらないでしょうか?

カテゴリー: 未分類   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA(画像認証)

上の画像の最初と最後を除いた3桁の数字を入力して、送信ボタンを押してください。