在.pro里面添加
qtHaveModule(printsupport): QT += printsupport(因为Qt5将打印的相关类放到了Qtprintsupport模块)
添加头文件
#include <qprinter.h>
#include <QPainter>
void MainWindow::pushButton_clicked()
{
//this->update();
QPrinter printer_pixmap(QPrinter::HighResolution);
printer_pixmap.setPageSize(QPrinter::A4); //设置纸张大小为A4
printer_pixmap.setOutputFormat(QPrinter::PdfFormat); //设置输出格式为pdf
printer_pixmap.setOutputFileName("C:\\test_pdf.pdf"); //设置输出路径
QPixmap pixmap = QPixmap::grabWidget(this,this->rect()); //获取程序当前界面的图片
QPainter painter_pixmap;
painter_pixmap.begin(&printer_pixmap);
QRect rect = painter_pixmap.viewport();
int multiple = rect.width()/pixmap.width();
painter_pixmap.scale(multiple, multiple); //将图像(所有要画的东西)在pdf上放大multiple-1倍
painter_pixmap.drawPixmap(0, 0, pixmap); //画图
painter_pixmap.end();
}
在下在想,可不可以设置输出参数?应该可以,怎么设置?各位有好点子的请指正在下!
补充;下拉菜单选择输出纸张类型
以上是图片生成pdf,还有文本、html生成pdf;详见附件;
代码来自博主:一去、二三里的pdf教程里面