将QWebView打印为PDF

时间:2015-06-06 07:02:11

标签: c++ qt pdf qwebview qprinter

我想将QWebView打印到PDF并将其保存在桌面上。 我实现了一个函数,这里是代码:

// Print to PDF
// Purpose: print incoming HTML source code to a PDF on the users desktop
// Input:   string containing the HTML source code, string with the desired filename of resulting PDF
// Output:  void
void MainWindow::printToPDF(QString htmlinput, QString filename)
{
    // Set location of resulting PDF
    QString saveLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/" + filename + ".pdf";

    // Initialize printer and set save location
    QPrinter printer(QPrinter::HighResolution);
    printer.setOutputFileName(saveLocation);

    // Create webview and load html source
    QWebView webview;
    webview.setHtml(htmlinput);

    // Create PDF
    webview.print(&printer);
}

现在我的问题是我的应用程序出现以下错误:

QPainter::begin(): Returned false

我确认这个错误是由上面的函数引起的,另一方面我只在另一个项目中尝试了上面的代码来确认它是否有效 - 它确实有效。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

上面的代码完美无缺 - 只要存储PDF的位置没有输入错误 - 就像我的情况一样。

所以问题解决了。