可能会遇到需要将 样本编号 检测结果等信息作为检测报告打印到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是报告想要呈现的样子