我使用以下代码来设置我的QPrinter对象的纸张大小:
printer_.setPaperSize(QPrinter::A4);在我的计算机上,它按预期工作,但在另一台计算机上,我的PDF报表布局“坏了”。
为了找出原因,我发现了一个问题:Qt QPrinter setPaperSize does not work properly
就像@Jens说的那样:"setPaperSize依赖于从打印机驱动程序收到的信息.“。
我在Qt文档上检查了大小,它的大小对应于210 x 297 mm。
我可以将setPaperSize参数从:printer_.setPaperSize(QPrinter::A4);更改为printer_.setPaperSize(QSizeF(210, 297), QPrinter::Millimeter);吗?它是否正常工作(打印机独立)?
我之所以问这个问题,是因为我再也没有另一台电脑来测试它了,而且我无法在我的电脑上重现这个问题。顺便说一句,如果有人知道我如何在我的电脑上复制这个问题来测试这个问题是否解决了,我很感激。
示例:

图像上的黑色边框仅用于显示打印区域的边界。
注意事项:我正在使用QT5.3.2
发布于 2016-11-25 12:41:26
我将setPaperSize参数更改为:
printer_.setPaperSize(QPrinter::A4);至:
printer_.setPaperSize(QSizeF(210, 297), QPrinter::Millimeter);值210和297来自Qt文档:
“优质打印机:A4-0-210 x 297毫米,8.26 x 11.69英寸”
基本上,我不是使用QPrinter::A4从打印机设备中获取大小,而是根据正确的A4毫米大小设置一个固定的A4。
对我起作用了。
https://stackoverflow.com/questions/40592427
复制相似问题