gpt4 book ai didi

c++ - 使用 QPrinter 打印多个 QTextDocuments

转载 作者:行者123 更新时间:2023-11-28 06:50:32 31 4
gpt4 key购买 nike

我需要为用户动态创建的一些对象生成一个文档来打印,我想打印这些文档。我编写了以下代码(generateDocument() 引用文档以添加 html 代码):

QPrinter printer;
QPrintDialog popup(&printer);
if (popup.exec() == QDialog::Accepted)
{
for (int i = 0; i < _quiz->getSerieCount(); i++)
{
QTextDocument doc;
generateDocument(doc, _quiz->getSerie(i));
doc.print(&printer);
}
}

当打印为 pdf 时,Linux 和 Windows 中的行为不同:在 Linux 上,这仅打印最后生成的文档,而在 Windows 上,它提示为每个 generateDocument() 调用选择一个新的 pdf。

我应该采取不同的做法吗?

最佳答案

您可以为每个系列添加分页符,然后打印文档。
尝试以下例如

QTextDocument doc;
QTextCursor cursor(&doc);

for (int i = 0; i < _quiz->getSerieCount(); i++)
{
if(i!=0) \\ dont add page break for the first document
{
QTextBlockFormat blockFormat;
blockFormat.setPageBreakPolicy(QTextFormat::PageBreak_AlwaysAfter);
cursor.insertBlock(blockFormat);
}

// < append _quiz->getSerie(i) contents in the document >
}

doc.print(&printer);

还没有测试代码,但我想应该可以在 Windows 上正常工作,因为我使用它的方式类似,没有任何问题。无法对其在 Linux 机器上的行为发表任何评论。您可以根据自己的需要对其进行更好的修改。
希望这有帮助。

关于c++ - 使用 QPrinter 打印多个 QTextDocuments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039812/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com