我继承了一些Netbeans的QT代码,使用QPrinters的C++可以正常打印,但打印到打印机只能打印一半的页面。代码相当简单明了。它看起来像是在页面上打印了一些东西,但所有对象都被考虑在内(命名为每个对象)。
QPrinter * printer = new QPrinter(QPrinter::HighResolution);
QPainter painter;
painter.begin(printer);
double xscale = printer->pageRect().width()/double(width());
double yscale = printer->pageRect().height()/double(height());
double scale = qMin(xscale, yscale);
painter.translate(printer->paperRect().x() + printer->pageRect().width()/2,
printer->paperRect().y() + printer->pageRect().height()/2);
painter.scale(scale, scale);
painter.translate(-width()/2, -height()/2);
render(&painter);发布于 2018-10-05 01:35:04
回答我自己的问题是QPrinter::HighResolution不工作。如果出现此问题,请尝试QPrinter::ScreenResolution。
QPrinter(QPrinter::HighResolution);您可能需要检测是否要使用PDF而不是打印机,然后将打印机分辨率更改为至少1200 dpi。
https://stackoverflow.com/questions/52651515
复制相似问题