QWebView无法正确加载图像

时间:2015-09-23 18:02:08

标签: qt qwebview qprinter

我创建了一个使用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模板

1 个答案:

答案 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);
}