【发布时间】:2015-05-26 13:56:51
【问题描述】:
我正在开发的 QT 应用程序附带一个教程。每章都是一个独立的 HTML 文件,每个文件可以跨越多个页面。现在我想将它们打印成一个 PDF 文件(带有页码)。
我的幼稚做法是这样的,但这是错误的:
#include <QApplication>
#include <QPrinter>
#include <QTextBrowser>
#include <QUrl>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("/tmp/test.pdf");
QTextBrowser *tp = new QTextBrowser();
tp->setSource(QUrl("qrc:///help/tutorial_item_1.html"));
tp->print(&printer);
tp->setSource(QUrl("qrc:///help/tutorial_item_2.html"));
tp->print(&printer);
tp->setSource(QUrl("qrc:///help/tutorial_item_3.html"));
tp->print(&printer);
// etc...
}
但是,这将在每次调用 print() 时重新启动打印机,从一个新的 PDF 文件开始,覆盖旧文件。
使用 QT 将所有 HTML 打印到一个 PDF 文件中的简单解决方案是什么?
【问题讨论】:
-
可以合并两个文本浏览器的内容,一步打印出来
-
每次打印后尝试
printer.newPage()
标签: c++ qt pdf qtextbrowser