我正在根据此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();
}