从 Qt 应用程序(Qt 4.7.1)中,我正在打印一个图表,如下所示:
- QPrinter 是默认构造的:
QPrinter printer;
- 启用彩色打印:
printer.setColorMode( QPrinter::Color );
- 用户现在可以选择打印机:
QPrintDialog printDialog( &printer, this );
printer.setFullPage( true );
- 使用打印机初始化画家:
QPainter painter( &printer );
然后,绘制了一个复杂的图表。我可以将问题缩小到一种对象:虚线。它们的创建方式如下:
- 一个 QPen 被创建。
- 画笔宽度和画笔样式已设置。
- 然后用这支笔画出许多线条(跨越页面的整个宽度)。
对于实线(Qt::SolidLine),一切都很好(< 100 kB PDF 大小)。但是对于虚线 (Qt::DotLine),当使用 A0 和 600 dpi 打印到 PDFCreator 时,PDF 的大小为 60 MB。对于较低的分辨率,文件大小也会变小。
更新:我还尝试使用 HP 绘图仪的驱动程序,重定向到一个文件。这个文件有 130 MB,所以问题更严重。
在 Linux (KDE) 上,PDF 的大小小于 50 kB。
显然,Windows 的 Qt 打印代码/Windows 打印系统光栅点线(但不是实线)。知道如何解决这个问题吗?