以前的技术了.主要是使用qt的qtjambi的包 qtjambi-4.5.2_01,这个jar包已经不更新了,但是还是可以用,目前只能在java的main方式下面用,如何打包成一个方法方便调用我还不知道怎么办,如果有知道的,请赐教..
用的的两个包,这两个包引到java的类库里面
qtjambi-4.5.2_01.jar
qtjambi-win64-msvc2005x64-4.5.2_01.jar
然后就是代码了,可以支持http暂不支持https,和html字符串转成图片
package qtbrowser;
import com.trolltech.qt.core.QSize;
import com.trolltech.qt.core.QUrl;
import com.trolltech.qt.gui.QApplication;
import com.trolltech.qt.gui.QImage;
import com.trolltech.qt.gui.QPainter;
import com.trolltech.qt.webkit.QWebPage;
import com.trolltech.qt.webkit.QWebView;
public class Browser{
private QWebView browser;
private QWebPage page;
private String fileName;
public Browser(String fileName) {
super();
this.fileName=fileName;
}
public void setUrl(String url) {
browser=new QWebView();
browser.load(new QUrl(url));
page=browser.page();
browser.loadFinished.connect(this,"saveImage()");
}
public void setHTML(String html) {
browser=new QWebView();
browser.setHtml(html);
page=browser.page();
browser.loadFinished.connect(this,"saveImage()");
}
@SuppressWarnings("unused")
private void saveImage() throws Exception {
QSize size = page.mainFrame().contentsSize();
page.setViewportSize(new QSize(size.width()+16,size.height()));
QImage image=new QImage(size, QImage.Format.Format_ARGB32);
QPainter painter = new QPainter(image);
page.mainFrame().render(painter);
painter.end();
if(!image.save(fileName)) {
throw new Exception("create file:"+fileName+" fail");
}
}
public static void main(String[] args) {
QApplication.initialize(args);
String url="http://www.sina.com.cn/";
Browser browser=new Browser("D:\\worktemp\\sina.png");
browser.setUrl(url);
QApplication.exec();
}
}