我创建了一个使用QWebView创建模板的应用程序,然后将其打印为pdf文件。 在视图中我将背景图像设置为正文,当执行程序时,第一次打印pdf时,图像不会在pdf中打印。然后,我再次打印相同的PDF,然后出现图像。因此对于所有subsecuent打印。 因此,它不适用于第一次印刷。
我重新编写了html代码,并且背景图像总是被设置。
要打印pdf文件,请使用:
QPrinter printer;
printer.setOrientation(QPrinter::Landscape);
printer.setPaperSize(QSizeF(76.2,180),QPrinter::Millimeter);
printer.setPageMargins(27,11.2,4,4.4,QPrinter::Millimeter);
QPrintDialog *dialog = new QPrintDialog(&printer);
if (dialog->exec() == QDialog::Accepted){
QWebView *view = new QWebView();
QUrl url(QApplication::applicationDirPath());
view->setHtml(cheque,url);
view->print(&printer);
}
检查是html模板
答案 0 :(得分:0)
问题是对象是在QWebView中异步加载的。所以我在调用QPrintDialog之前声明了QWebView。
QPrinter printer;
printer.setOrientation(QPrinter::Landscape);
printer.setPaperSize(QSizeF(76.2,180),QPrinter::Millimeter);
printer.setPageMargins(27,11.2,4,4.4,QPrinter::Millimeter);
QWebView *view = new QWebView();
QUrl url(QApplication::applicationDirPath());
view->setHtml(cheque,url);
QPrintDialog *dialog = new QPrintDialog(&printer);
if (dialog->exec() == QDialog::Accepted){
view->print(&printer);
}