我正在使用Qt C++进行打印操作,但发现边距无法按预期工作。以下是我使用的QPrinter配置:
QPrinter *pr = new QPrinter(QPrinterInfo::printerInfo("Canon iP2700 series"));
pr->setPageSize(QPrinter::A4);
pr->setFullPage(true);
pr->setPageMargins(5, 5, 5, 5, QPrinter::Millimeter);
QTextDocument *d = new QTextDocument(this);
d->setHtml("<i>Try printing from QT</i>");
d->print(pr);
结果边距与边缘相差很远(应为5mm),我也尝试在真实打印机上打印。看起来打印机有内部边距,我设置给打印机的边距会被添加到内部边距中。
在我的问题中,内部边距为20mm。因此,如果我将打印机边距设置为10mm,则在打印时,纸张上的边距为30mm。
有没有人有这方面的经验?如何使边距起作用?
PS:我正在使用Qt 5.5 VC 2013。