【问题标题】:Draw html page using the QPainter使用 QPainter 绘制 html 页面
【发布时间】:2010-07-06 16:39:57
【问题描述】:

如何绘制html页面?

QWebView *view = new QWebView();
view.Load(Url("http://www.google.com"));

QPrinter printer = new Qprinter();

如何绘制这个视图?

【问题讨论】:

    标签: html qt printing qwebview


    【解决方案1】:

    如果您只想打印页面,只需使用QWebView::print(QPrinter *) 方法。

    如果要将视图绘制到任意绘图设备,请使用QWebView::render(QPaintDevice *)。此方法适用于任何QWidget 子类。

    【讨论】:

    • 我想通过 Microsoft Xps 打印机进行打印。 QPrinter.setPrinterName("Microsoft Xps 打印机");
    【解决方案2】:
    MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
    {          QWebView view = new QWebView(this);
               //Set settings
               view->settings()->setAttribute(QWebSettings::JavaEnabled, true);
               view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
               view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, false);
               view->settings()->setAttribute(QWebSettings::JavascriptCanAccessClipboard, false);
               view->settings()->setAttribute(QWebSettings::AutoLoadImages, true);
               //Load URl
               view->page()->mainFrame()->load(QUrl("http://www.habrahabr.ru"));
               //Connect signal loadFinished
               connect(view, SIGNAL(loadFinished(bool)), SLOT(finishLoading(bool)))
    }
    
    void MainWindow::finishLoading(bool)
     {
        //Printing
        QPrinter *printer = new QPrinter(QPrinter::HighResolution);
        printer->setPrinterName("Microsoft XPS Document Writer");
        printer->setOutputFileName("out.xps");
        view->page()->mainFrame()->print(printer);
     }
    

    几乎所有东西都可以正常工作,除了小部件。不要告诉我怎么配置? FontFamily、FontSize、页脚和页眉、链接...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多