QT PDF导出操作
利用
QString html;
savePathString 为保存路径
html 为QString
将字符按HTML标准格式添加至QSTRING ,然后转出
QPrinter printer_html;
printer_html.setPageSize(QPrinter::A4);
printer_html.setOutputFormat(QPrinter::PdfFormat);
printer_html.setOutputFileName(savePathString);
QTextDocument text_document;
text_document.setHtml(html);
text_document.print(&printer_html);
text_document.end();
html组成举例
文字的打印
html +="<h3>"+QStringLiteral("批次信息")+"</h3>";
html +="<p style=\"text-indent: 2em\" >"+QStringLiteral("批次名:");
html += QString("%1").arg(record.value(1).toString());
html += "</p>";
html +="<p style=\"text-indent: 2em\" >"+QStringLiteral("批次抢建时间:");
html += QString("%1").arg(record.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss"));
html += "</p>";
html +="<p style=\"text-indent: 2em\" >"+QStringLiteral("批次更新时间:");
html += QString("%1").arg(record.value(3).toDateTime().toString("yyyy-MM-dd hh:mm:ss"));
html += "</p>";
html +="<p style=\"text-indent: 2em\">"+QStringLiteral("检测总数:");
html += QString("%1").arg(record.value(4).toString());
html += "</p>";
html +="<p style=\"text-indent: 2em\" >"+QStringLiteral("匹配总数:");
html += QString("%1").arg(record.value(5).toString());
html += "</p>";
表格添加
QStringList title;
title.push_back(QStringLiteral("序号"));
// title.push_back(QStringLiteral("ID"));
title.push_back(QStringLiteral("条形码"));
title.push_back(QStringLiteral("检测时间"));
title.push_back(QStringLiteral("模板"));
title.push_back(QStringLiteral("检测元件总数"));
title.push_back(QStringLiteral("匹配元件总数"));
//title.push_back(QStringLiteral("批次名称"));
html +="<table width=\"500\" border=\"1\" style=\"border-collapse:collapse;\" bordercolor=\"black\">"; html +="<tr style=\background-color:black\">"; for(int i=0;i<title.count();i++) { html +=QString("<th>%1</th>").arg(title.at(i)); } html +="</tr>";
QString seq; QString logId; QString serialNum; QString dataTime ; QString modelName ; QString count ; QString MatchCount; // QString batchName; for(int i=0;i< logModel->rowCount();i++) { QSqlRecord record = logModel->record(i); // record.value(1).toString(); // record.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss") html +="<tr>"; seq=QString::number(i); logId = record.value(0).toString(); serialNum=record.value(1).toString(); dataTime =record.value(2).toDateTime().toString("yyyy-MM-dd hh:mm:ss"); modelName=record.value(3).toString(); count =record.value(4).toString(); MatchCount =record.value(5).toString() ; // batchName =record.value(6).toString() ; html +=QString("<td>%1</td>").arg(seq); // html +=QString("<td>%1</td>").arg(logId); html +=QString("<td>%1</td>").arg(serialNum); html +=QString("<td