QT5开发笔记--pdf输出
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)