如何使用QWebEnginePage :: print生成带有矢量图形的PDF?

时间:2019-02-21 16:27:57

标签: c++ qt qt5 pdf-generation qtwebengine

我正在根据此guide将QWebKit移植到QWebEngine。它说QWebFrame的功能已合并到QWebEnginePage中。使用QWebFrame::print,我可以生成带有矢量图形(SVG图像,文本等)的PDF。使用QWebEnginePage::print时,输出只是嵌入到PDF中的光栅化图像(请参见下面的代码段)。

我知道QWebEnginePage::printToPDF会生成带有矢量图形的PDF,但是我需要对QPriter提供的打印进行精细控制。

是否可以使用QWebEnginePage::print生成带有矢量图形的PDF?

#include <QApplication>
#include <QPrinter>
#include <QWebEngineView>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWebEngineView view;
    view.setUrl(QUrl("https://output.jsbin.com/gihanil"));
    view.resize(QSize(630, 891));
    view.show();

    QObject::connect(&view, &QWebEngineView::loadFinished, [&view, &app](bool isOk) {
        auto* printer = new QPrinter();

        printer->setOutputFormat(QPrinter::PdfFormat);

        printer->setOutputFileName("tiger.pdf");

        view.page()->print(printer, [&app, printer](bool isOk) {
          delete printer;
          app.quit();
        }));
    });

    return app.exec();
}

0 个答案:

没有答案