QT += printsupport

方案一:

QPrinter pr(QPrinter::HighResolution);      /// 高分辨率
pr.setPageSize(QPrinter::A4);               /// A4纸张
pr.setResolution(300);                      /// 设置分辨率
pr.setOutputFormat(QPrinter::PdfFormat);    /// 设置打印机格式PDF
pr.setOutputFileName("D:\\test.pdf");       /// 设置导出pdf路径

QPainter painter;           /// 创建画笔,以QPainter作为画板
painter.begin(&pr);         /// 关联输出    
QFont font;
font.setBold(true);         /// 加粗字体
font.setFamily("仿宋");      /// 设置字体
font.setPointSize(20);      /// 设置字号
painter.setFont(font);
painter.drawText(1100,100,"输出模版");

QPen pen;
pen.setColor(QColor(100,150,255));
pen.setWidth(5);
painter.setPen(pen);
painter.drawLine(0,200,2300,200);   /// 画横线


QPixmap pixmap = QPixmap("d:\\01.png");
painter.drawPixmap(300,500, pixmap);    /// 输出图片
QImage img = QImage("d:\\01.png");
painter.drawImage(500,300,img);

painter.end();  /// 结束

方案二:

QFile pdfFile("D:\\test3.pdf");
pdfFile.open(QIODevice::WriteOnly);
QPdfWriter pdfWriter(&pdfFile);
pdfWriter.setPageSize(QPagedPaintDevice::A4);   /// 设置纸张
pdfWriter.setResolution(300);                   /// 分辨率决定了相像素数

QPainter painter(&pdfWriter);
QFont font;
font.setBold(true);         /// 加粗字体
font.setFamily("仿宋");      /// 设置字体
font.setPointSize(10);      /// 设置字号
painter.setFont(font);
painter.drawText(0,1200,"1234567");

QPen pen;
pen.setColor(QColor(100,150,255));
pen.setWidth(5);
painter.setPen(pen);
painter.drawRect(0,0,2400,3430);    /// 画框

A4尺寸为 8.27英寸x11.69英寸(210mm×297mm)
300dpi表示每英寸300像素,A4为2480x3508,
左边距及上边距各保留了设置为40像素(不可用),右边距及下边距也保留对应尺寸,
则实际可用尺寸为 = 2400 x3428

A4:2400 x 3428
A5:(1754 - 80)x(2480 - 80) --> (1674x2400)