1

我正在尝试使用 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对象以某种方式将页面大小保持在某处,而我无法重置它。

4

1 回答 1

0

好的-我想它已经信不信由你。我找了一天多,结果发现很简单——我只是销毁了Painter反对,然后打开了一个新的:

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

这解决了它...

于 2013-01-25T15:19:34.207 回答