1. 程式人生 > >Qt QPrinter 繪製內容 到 PDF檔案

Qt QPrinter 繪製內容 到 PDF檔案

遇到問題:

需要把圖片、文字匯出為PDF,且圖片上有文字。

首先在.pro 新增 模組

QT += printsupport

實驗程式碼:

#include <QPainter>
#include <QPrinter>
#include <QPixmap>
#include <QBrush>



{
    QPrinter printer;

    printer.setOutputFormat(QPrinter::PdfFormat);//設定輸出格式為pdf
    printer.setPageSize(QPrinter::A4);//設定紙張大小為A4
    printer.setOutputFileName("D:\\test.pdf");//設定輸出路徑

    QPainter painter;
    painter.begin(&printer);

    //正常使用painter 繪製文字、pixmap等在printer上
    //要先畫圖片,然後畫圖片上面的內容,否則圖片會覆蓋其他內容
    QPixmap pixmap("D:\\pic.png");
    painter.drawPixmap(rect(), pixmap);

    painter.setPen(Qt::blue);
    painter.setFont(QFont("Arial", 30));
    painter.drawText(rect(), Qt::AlignCenter, "444Qt");


    QPen pen;
    pen.setWidth(40);
    painter.drawLine(10,20,200,400);

    QBrush brush;
    pen.setColor(Qt::red);
    brush.setColor(Qt::red);
    brush.setStyle(Qt::SolidPattern);
    painter.setBrush(brush);
    painter.setPen(pen);
    painter.drawRect(200,400,500,600);

    //至此,檔案被儲存
    painter.end();
}

效果: