2010-07-06 336 views
1

如何繪製html頁面?使用QPainter繪製html頁面

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

QPrinter printer = new Qprinter(); 

我該如何畫這個視圖?

回答

1

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

如果要將視圖繪製到任意塗料設備,請使用QWebView::render(QPaintDevice *)。此方法適用於任何QWidget子類。

+0

我想通過Microsoft Xps打印機進行打印。 QPrinter.setPrinterName(「Microsoft Xps Printer」); – isxaker 2010-07-06 16:59:47

0
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,頁腳和標題,鏈接...