Qt导出pdf格式表格

预期目标如下:Qt导出pdf格式表格_第1张图片
头文件:

#include
#include
#include
#include
#include
#include
#include

private:
QString m_html;

调用:
QDateTime dateTime = QDateTime::currentDateTime(); //当前日期和时间
QString ExportTime = dateTime.toString(“yyyyMMddhhmmsszzz”); //导出时间
QString pdfPath = path + ExportTime + “ExoprtShotScreenFile.pdf”;//导出路径

QPrinter printer_html;
printer_html.setPageSize(QPrinter::A4);
printer_html.setOutputFormat(QPrinter::PdfFormat);
printer_html.setOutputFileName(pdfPath);
m_html = “”;
writePdf();
QTextDocument text_document;
text_document.setHtml(m_html);
text_document.print(&printer_html);
text_document.end();

void QTabTreatVerifyPanel::writePdf()
{
///添加基本信息
QList rowsValues;
QList values;

//导出t1
rowsValues.append(QStringLiteral("机构名称"));
rowsValues.append(QStringLiteral("科室"));
values.append(rowsValues);

rowsValues.clear();
rowsValues.append(QStringLiteral("中医院"));
rowsValues.append(QStringLiteral("体检科"));
values.append(rowsValues);

rowsValues.clear();
rowsValues.append(QStringLiteral("人民医院"));
rowsValues.append(QStringLiteral("急诊科"));
values.append(rowsValues);

rowsValues.clear();
rowsValues.append(QStringLiteral("专科医院"));
rowsValues.append(QStringLiteral("发热门诊"));
values.append(rowsValues);

rowsValues.clear();
rowsValues.append(QStringLiteral("中西医结合"));
rowsValues.append(QStringLiteral("骨科"));
values.append(rowsValues);

QList width;
width.append(30);
width.append(70);
addTable(QStringLiteral("东海市医院列表"), QStringLiteral("招牌科室"), 5, 2, width, values);

//导出t2
rowsValues.clear();
values.clear();
rowsValues.append(QStringLiteral("患者姓名"));
rowsValues.append(QStringLiteral("地址"));
rowsValues.append(QStringLiteral("年龄"));
rowsValues.append(QStringLiteral("性别"));
values.append(rowsValues);

rowsValues.clear();
rowsValues.append(QStringLiteral("张三"));
rowsValues.append(QStringLiteral("北京东郊"));
rowsValues.append(QStringLiteral("13"));
rowsValues.append(QStringLiteral("男"));
values.append(rowsValues);

rowsValues.clear();
rowsValues.append(QStringLiteral("李四"));
rowsValues.append(QStringLiteral("月球人"));
rowsValues.append(QStringLiteral("18"));
rowsValues.append(QStringLiteral("其他"));
values.append(rowsValues);

width.clear();
width.append(25);
width.append(25);
width.append(25);
width.append(25);

addTable(QStringLiteral("患者列表"), QStringLiteral("患者信息"), 3, 4, width, values);

}

void QTabTreatVerifyPanel::addTable(const QString& title, const QString& subTitle, int rows, int cols, QList colWidth, const QList& values)
{
m_html.append(“

”);

//主标题
if (!title.isEmpty())
{
	m_html.append(QString("
"); } //副标题 if (!subTitle.isEmpty()) { m_html.append(QString(""); } //添加字段/字段值 for (int i = 0; i < rows; i++) { m_html.append(""); QList rowValues = values.at(i); for (int j = 0; j < cols; j++) { m_html.append(QString(""); } m_html.append(""); } m_html.append("
").arg(cols)); m_html.append(title); m_html.append("
").arg(cols)); m_html.append(subTitle); m_html.append("
").arg(colWidth.at(j))); m_html.append(rowValues.at(j)); m_html.append("


");

}

你可能感兴趣的:(Qt,qt,pdf,html,表格)