问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Qt实现导出表格到PDF文件

创作时间:
作者:
@小白创作中心

Qt实现导出表格到PDF文件

引用
CSDN
1.
https://m.blog.csdn.net/weixin_45126405/article/details/142546848

本文介绍如何使用Qt框架将表格数据导出为PDF文件。通过Qt的QPdfWriter类和QTextDocument类,可以轻松实现这一功能。本文适合Qt开发者参考学习。

要在Qt项目中实现表格数据导出到PDF的功能,首先需要在.pro文件中添加以下配置:

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport

然后,在代码中需要包含以下头文件:

#include <QPainter>
#include <QTextDocument>
#include <QPdfWriter>
#include <QTextBlock>

接下来是具体的实现代码:

void exportPdf()
{
    // 将界面数据导出到PDF
    QFile file("导出文件.pdf");
    QString m_html;
    if (file.open(QIODevice::WriteOnly | QIODevice::Append))
    {
        QPdfWriter *m = new QPdfWriter(&file);
        // m->setPageSize(QPagedPaintDevice::A4);

        m_html.append("<table border='0.5' cellspacing='0' cellpadding='3' width:100%>");

        QStringList HeaderName;
        HeaderName << "姓名" << "年龄" << "数据" << "测试" << "结果";
        m_html.append("<tr>");
        for (int i = 0; i < HeaderName.size(); i++)
        {
            m_html.append("<th width=120>");
            m_html.append(HeaderName.at(i));
            m_html.append("</th>");
        }
        m_html.append("</tr>");

        // 数据
        m_html.append("<tr>");
        m_html.append("<th width=100>数据1</th>");
        m_html.append("<th width=100>100</th>");
        m_html.append("<th width=100>70</th>");
        m_html.append("<th width=100>50</th>");
        m_html.append("<th width=100>正</th>");
        m_html.append("</tr>");

        m_html.append("<tr>");
        m_html.append("<th width=100>数据2</th>");
        m_html.append("<th width=100>99</th>");
        m_html.append("<th width=100>70</th>");
        m_html.append("<th width=100>25</th>");
        m_html.append("<th width=100>正</th>");
        m_html.append("</tr>");

        m_html.append("<tr>");
        m_html.append("<th width=100>数据3</th>");
        m_html.append("<th width=100>83</th>");
        m_html.append("<th width=100>70</th>");
        m_html.append("<th width=100>25</th>");
        m_html.append("<th width=100>正</th>");
        m_html.append("</tr>");

        m_html.append("</table>");

        QTextDocument doc;
        doc.setHtml(m_html);
        doc.print(m);
        doc.end();
    }
}

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号