Как создать PDF с векторной графикой, используя QWebEnginePage :: print? - PullRequest
0 голосов
/ 21 февраля 2019

Я портирую QWebKit на QWebEngine в соответствии с этим гидом .Это говорит о том, что QWebFrame функции были объединены в QWebEnginePageQWebFrame::print я смог создавать PDF-файлы с векторной графикой (изображения SVG, текст и т. Д.).С QWebEnginePage::print выводом является просто растеризованное изображение, внедренное в PDF (см. Фрагмент кода ниже).

Мне известно, что QWebEnginePage::printToPDF генерирует PDF-файлы с векторной графикой, но мне нужен детальный контроль над печатью, предоставляемый QPriter.

Можно создавать PDF с векторной графикой, используя QWebEnginePage::print?

#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();
}
...