4

我正在从 QWebView 创建 pdf 文件。

class myView: public QWebView
{
}

成员函数之一具有:

 this->settings()->setAttribute(QWebSettings::PrintElementBackgrounds, true);
 QPrinter printer;
 printer.setOutputFormat(QPrinter::PdfFormat);
 printer.setResolution(QPrinter::HighResolution);
 printer.setOutputFileName("whoami.pdf");
 print(&printer);

我看到生成了 pdf 文件,但是 html 文件中的图片很少,没有出现在 pdf 中,它是空白的。

上网并没有太大帮助,我还启用了 WebSetting,例如:

 this->settings()->setAttribute(QWebSettings::PrintElementBackgrounds, true);

有人可以建议我缺少什么吗?

4

1 回答 1

1

你应该先告诉打印等待告诉页面完成加载所以你应该

  1. 将此添加到您的代码中:

    connect(&document, SIGNAL(loadFinished(bool)), SLOT(printpdf()));
    

其中 document 是您的 qwebview 变量;

  1. 然后你创建你的私人插槽:

    printpdf();
    

在这个函数中,你应该调用打印机和 print(&printer);

不要忘记,在您的 html 中,您应该在 scr 中添加 file:///

例子

<img src="file:///c:/image.jpg" />
于 2016-01-12T09:38:54.383 回答