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