Qt アプリケーション (Qt 4.7.1) から、次のように図を印刷しています。
- QPrinter はデフォルトで構築されています。
QPrinter printer;
- カラー印刷が有効:
printer.setColorMode( QPrinter::Color );
- ユーザーがプリンターを選択できるようになりました。
QPrintDialog printDialog( &printer, this );
printer.setFullPage( true );
- プリンターを使用してペインターを初期化します。
QPainter painter( &printer );
次に、複雑な図が描かれます。問題を 1 種類のオブジェクト、点線に絞り込むことができました。それらは次のように作成されます。
- QPen が作成されます。
- ペン幅とペンスタイルを設定します。
- 次に、このペンで多数の線 (ページの幅全体にわたる) が描かれます。
実線 (Qt::SolidLine) の場合、すべて問題ありません (< 100 kB PDF サイズ)。ただし、点線 (Qt::DotLine) の場合、A0 および 600 dpi を使用して PDFCreator に印刷すると、PDF は 60 MB の大きさになります。解像度が低いと、ファイル サイズも小さくなります。
更新:ファイルにリダイレクトされたHPプロッターのドライバーも試しました。このファイルは 130 MB あるため、問題はさらに深刻です。
Linux (KDE) では、PDF のサイズは 50 kB 未満です。
どうやら、Windows / Windows 印刷システム用の Qt 印刷コードは点線をラスター化します (実線ではありません)。この問題について何をすべきか考えていますか?