可能会遇到需要将 样本编号 检测结果等信息作为检测报告打印到A4纸上,
解决方案是:
写一个报告格式一样的界面,界面的比例要和A4的比例一样
将要打印的内容 显示在界面上
将界面的内容打印出来
关键代码
QT += printsupport
#include <QPrintDialog>
#include <QPrinter>
#include <QPainter>
// 设置QWidget大小为A4纸大小
QPrinter printer(QPrinter::HighResolution);
printer.setPageSize(QPrinter::A4);
QPrintDialog printDialog(&printer);
if(printDialog.exec() != QDialog::Accepted)
{
return;
}
else
{
QPainter painter(&printer);
qreal xscale = printer.pageRect().width() / (qreal) ui->m_reportWidget->width();
qreal yscale = printer.pageRect().height() / (qreal) ui->m_reportWidget->height();
qreal scale = qMin(xscale, yscale);
painter.scale(scale, scale);
ui->m_reportWidget->render(&painter);
}
其中ui->m_reportWidget是报告想要呈现的样子