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

