想让打印出来后除了第一页每一页的开头都能显示测试两个字,代码void ConsolidatedReport::printPreview1(QPrinter *p) { ted = new QTextDocument; p->setPageMargins(QMarginsF(0,0,0,0)); ted->setPageSize(QSizeF(p->pageRect().size())); QSize pageSize= p->pageRect().size(); int pageCount = pageSize.height() / p->pageRect().height() + 1; for (int i = 0; i < pageCount; i++) { if (i > 0) { p->newPage(); } QString header = "<div style='background-color:red;'><span class='report-title'>测试</span></div>"; QString footer = ""; QString html = header + getHtmlStr() + footer; ted->setHtml(html); ted->print(p); } }如何进行修改
时间: 2024-03-16 22:43:40 浏览: 120
打印的代码已经打印预览
4星 · 用户满意度95%
您可以在循环中添加以下代码来在每一页的开头添加“测试”两个字:
```
QString header = "<div style='background-color:red;'><span class='report-title'>测试</span></div>";
if (i == 0) {
header += "<br>"; // 第一页不需要换行
} else {
header += "<p style='page-break-before: always'></p>"; // 其他页需要手动插入分页符
}
QString footer = "";
QString html = header + getHtmlStr() + footer;
ted->setHtml(html);
ted->print(p);
```
这样就可以在每一页的开头都显示“测试”两个字了。注意,因为第一页的开头已经有默认的页眉了,所以第一页不需要手动插入分页符。而其他页需要手动插入分页符,否则就会出现“测试”两个字紧贴着上一页的内容的情况。
阅读全文