首页 > 代码库 > Qt -QPrinter - Pdf [Qt QPrinter 绘制内容 到 PDF文件]
Qt -QPrinter - Pdf [Qt QPrinter 绘制内容 到 PDF文件]
1 准备好打印设备 QPrinter
QPrinter printer; printer.setOutputFormat(QPrinter::PdfFormat);//设置输出格式为pdf printer.setPageSize(QPrinter::A4);//设置纸张大小为A4 printer.setOutputFileName("test.pdf");//设置输出路径
2 将 绘制 链接到 打印设备上 QPainter
QPainter painter; painter.begin(&printer); //正常使用painter 绘制文字、pixmap等在printer上 .... //至此,文件被保存 painter.end();
3 绘制过程中 绘制文字、绘制line 、绘制pixmap 、绘制QRect
//文字 painter.setFont(Nstr->font); painter.drawText(Nstr->pos, Nstr->str); //line QPen pen; pen.setWidth(Nlin->pointsize); painter.drawLine(Nlin->pos1 , Nlin->pos2); //pixmap //QRect rect = painter.viewport(); //int multiple = rect.width()/Npix->pixmap.width(); //使用scale拉伸,效果并不好,总会影响其他输出,推荐只使用Rect得到大小,让pixmap绘制到Rect内,自动填充。 //painter.scale(multiple, multiple); painter.drawPixmap(Npix->rect, Npix->pixmap); pen.setColor(Qt::red); brush.setColor(Qt::red); brush.setStyle(Qt::SolidPattern); painter.setBrush(brush); painter.setPen(pen); painter.drawRect(Nrec->rect);
注意:
1 drawPixmap 时 使用painter.scale(sx , sy); 拉伸图像适应pdf窗体时,一定要使用之后立刻 scale(1 , 1); 不然文字什么的都会发生拉伸。
2 QBrush 的使用 并不仅仅是setColor() 就可以了,必须还要设置setStyle();
QPen style
Qt -QPrinter - Pdf [Qt QPrinter 绘制内容 到 PDF文件]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。