代码之家  ›  专栏  ›  技术社区  ›  isxaker

使用qpainer绘制HTML页

  •  1
  • isxaker  · 技术社区  · 16 年前

    如何绘制HTML页面?

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

    如何绘制此视图?

    2 回复  |  直到 15 年前
        1
  •  1
  •   lunaryorn    16 年前

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

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

        2
  •  0
  •   moinudin    15 年前
    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、页脚和页眉、链接…