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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM