0

我正在使用以下代码来设置我的QPrinter对象的纸张大小:

printer_.setPaperSize(QPrinter::A4);

在我的计算机上,它按预期工作,但在另一台计算机上,我的 PDF 报告布局“损坏”。

搜索原因,我发现了这个问题: Qt QPrinter setPaperSize does not work proper

就像@Jens 所说:“setPaperSize 依赖于从打印机驱动程序接收到的信息......”

我检查了Qt 文档QPrinter::A4上的大小,它的大小对应于210 x 297 mm

我可以将setPaperSize参数从:更改printer_.setPaperSize(QPrinter::A4);printer_.setPaperSize(QSizeF(210, 297), QPrinter::Millimeter);吗?它会正常工作(独立于打印机)吗?

我问它是因为我没有另一台计算机来测试它,而且我无法在我的计算机上重现该问题。顺便说一句,如果有人知道如何在我的计算机上重现该问题以测试问题是否已解决,我将不胜感激。

例子: 在此处输入图像描述

图像上的黑色边框仅用于显示打印区域的边界。

注意:我使用的是 Qt 5.3.2

4

1 回答 1

1

我更改了setPaperSize参数:

printer_.setPaperSize(QPrinter::A4);

至:

printer_.setPaperSize(QSizeF(210, 297), QPrinter::Millimeter);

210297来自Qt文档:

“QPrinter::A4 - 0 - 210 x 297 毫米,8.26 x 11.69 英寸”

基本上,我不是使用从打印机设备获取尺寸,而是根据正确的A4毫米尺寸QPrinter::A4设置一个固定值。QSizeF

它对我有用。

于 2016-11-25T12:41:26.137 回答