2015-06-06 12 views
3

Я хочу напечатать QWebView в PDF и сохранить его на рабочем столе. я реализовал функцию, чтобы сделать это, и вот код:Печать 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 

Я coud подтвердить, что это вызвано ошибкой по вышеуказанной функции, с другой стороны, я пробовал код только в другом проекте, чтобы подтвердить, что он работает, - что он делает.

Любые предложения?

ответ

1

Приведенный выше код отлично работает, если в месте хранения PDF-файла нет опечатки, которая была у меня в моем случае.

Так что проблема решена.