Qt-将文字转换为PDF

在实际的项目开发中,我们有可能需要将图片或者一些文字转换为PDF的形式保存起来,那么如何将图片和文字等形式的内容生成PDF?其实也是很简单的,在就和我们画一个简单的图形是一样的道理,我们在绘图的时候会利用QPainter,你也许还记得生成QPainter的对象我们需要指定其绘图设备(QPaintDevice *device),即需要指定我们需要把图形画在哪里,那么在生成PDF的时候我们需要用到QPrinter,我们就可以把文字或者图片画到QPrinter中。

QPrinter printer_text;
    printer_text.setPageSize(QPagedPaintDevice::A4);//设置打印纸张的大小为A4,会包含许多格式的纸张,可以根据自己的要求来设置打印纸张的大小
    printer_text.setOutputFormat(QPrinter::PdfFormat);//设置输出格式为PDF
    printer_text.setOutputFileName(tr("C:\\Users\\GiG\\Desktop\\text.pdf"));//设置保存位置
    QStringList location1;
    location1<< tr("北京")<<tr("上海")<<tr("西安")<<tr("深圳")<<tr("成都");

    QStringList location2;
    location2<< tr("湖人")<<tr("快船")<<tr("凯尔特人")<<tr("雄鹿")<<tr("猛龙");

    QPainter painter;
    painter.begin(&printer_text);//将printer_text作为当前的绘图设备
    QString dateTime = QDateTime::currentDateTime().toString(tr("yyyy-MM-dd hh:mm:ss dddd"));

    QPoint startPoint = QPoint(20,20);
    for (int row = 0; row < 5; ++row)
    {
        QString message = QString("%1       %2      %3").arg(QString::number(row)).arg(dateTime).arg(location1.at(row));
        int y = startPoint.y();
        startPoint.setY(y+20);
        painter.drawText(startPoint,message);
        message.clear();
    }

    printer_text.newPage();//创建新的一页

    QPoint newPoint = QPoint(20,20);
    for (int row = 0; row < 5; ++row)
    {
        QString message = QString("%1       %2   %3   %4        %5").arg(QString::number(row)).arg(location2.at((row+1) % 5)).arg(tr("VS"))
                                                                 .arg(location2.at(row)).arg(dateTime);
        int y = newPoint.y();
        newPoint.setY(y+20);
        painter.drawText(newPoint,message);
        message.clear();
    }
    painter.end();

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值