#-*- coding:utf-8 -*-
import sys
import os.path
from PyQt4 import QtGui,QtCore,QtWebKit
class PageShotter(QtGui.QWidget):
def __init__(self,url,parent=None):
QtGui.QWidget.__init__(self,parent)
self.url = url
def shot(self):
webView = QtWebKit.QWebView(self)
webView.load(QtCore.QUrl(self.url))
self.webPage = webView.page()
self.connect(webView,QtCore.SIGNAL("loadFinished(bool)"),self.savePage)
def savePage(self,finished):
#print finished
if finished:
print u"開始截圖!"
size = self.webPage.mainFrame().contentsSize()
print u"頁面寬:%d,頁面高:%d" % (size.width(),size.height())
self.webPage.setViewportSize(QtCore.QSize(size.width()+16,size.height()))
img = QtGui.QImage(size, QtGui.QImage.Format_ARGB32)
painter = QtGui.QPainter(img)
self.webPage.mainFrame().render(painter)
painter.end()
fileName= "shot.png";
if img.save(fileName):
filePath = os.path.join(os.path.dirname(__file__), fileName)
print u"截圖完畢:%s" % filePath
else:
print u"截圖失敗";
else:
print u"網(wǎng)頁加載失?。?
self.close()
if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
#shotter = PageShotter("http://www.")
shotter = PageShotter("http://www.oschina.net/")
shotter.shot()
sys.exit(app.exec_())