如何更改Qt QPrinter的纸张尺寸?

时间:2013-01-25 14:12:36

标签: qt

我正在尝试使用Qt打印PDF并且它工作正常。但是,在某些情况下,我想更改纸张的大小,因为我知道将要打印多少纸张。

我正在尝试更改附加到QPainter对象的设备的纸张尺寸,但它不会影响实际输出。

以下是我在伪代码中所做的事情:

printer = new QPrinter(...);
printer->setPaperSize(...); /* eg. A4 */

painter = new QPainter();
painter->begin(printer);

determine_page_size_by_trial_rendering(frame, printer, *painter);

printer->setPaperSize(....); /* eg. A5 */

real_rendering(frame, printer, *painter)

不幸的是,我似乎无法实现这一目标。我觉得QPainter对象以某种方式将页面大小保留在某处,我无法重置它。

1 个答案:

答案 0 :(得分:0)

好的 - 我认为它已经相信与否了。我一直在寻找超过一天,但事实证明这很简单 - 我只是摧毁了画家的反对意见,然后开了一个新的:

painter->end();
painter = new QPainter(printer);

解决了它......