展开全部

使用JavaFX8(JDK8打包在一起)

public void start(Stage primaryStage) throws Exception {

final WebView view = new WebView();

Scene scene = new Scene(view, 310, 310);

primaryStage.setScene(scene);

final WebEngine webEngine = view.getEngine();

webEngine.load(this.getClass().getResource("web/index.html")

.toExternalForm());

primaryStage.show();

// 方式1. 监听webEngine加载进度,可能页面加载不完整

webEngine.getLoadWorker().stateProperty()

.addListener(new ChangeListener() {

@Override

public void changed(ObservableValue extends State> ov,

State oldState, State newState) {

if (newState == State.SUCCEEDED) {

snapshot(view);

}

}

});

// 方式2. 使用Transition设定延时62616964757a686964616fe59b9ee7ad9431333337613834

PauseTransition ptr = new PauseTransition(Duration.seconds(3));

ptr.setOnFinished(new EventHandler() {

@Override

public void handle(ActionEvent event) {

snapshot(view);

}

});

ptr.play();

//方式3. 使用Task设定延时

Task task = new Task() {

@Override

protected String call() throws Exception {

Thread.sleep(5000);

return null;

}

};

task.setOnSucceeded(new EventHandler() {

@Override

public void handle(WorkerStateEvent event) {

snapshot(view);

}

});

new Thread(task).start();

// 方式4. 自己实现多线程调用,较麻烦

new Thread(){

public void run() {

try {

Thread.sleep(7000);//该命令不可直接在Fx用户线程执行,否则会导致前台的渲染线程暂停,页面不会被加载

Platform.runLater(new Runnable() {

@Override

public void run() {

snapshot(view);//在后台线程中不可以直接操作UI,需要借助runLater

}

});

} catch (InterruptedException e) {

e.printStackTrace();

}

};

}.start();

}

public void snapshot(Node view) {

Image image = view.snapshot(null, null);

try {

ImageIO.write(SwingFXUtils.fromFXImage(image, null), "png",

new File("f:\\" + System.currentTimeMillis() + ".png"));

} catch (IOException e) {

e.printStackTrace();

}

}

java webengine_如何以Java实现网页截图技术相关推荐

  1. java web 截图_如何以Java实现网页截图技术

    今天看到某网友关于"如何以Java实现网页截图技术"的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答. 事实上,如果您想以Java实现网页截图,也就是" ...

  2. 如何以Java实现网页截图技术

    今天看到某网友关于"如何以Java实现网页截图技术"的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答. 事实上,如果您想以Java实现网页截图,也就是" ...

  3. IE网页截图技术笔记

    网页截图技术似乎并不是很复杂,网上有很多实例,但是真的想搞清楚的话,还是有很多细节需要注意的.下面是我个人一些经验总结. 有3个技术方案,可以实现IE截图 这篇博客(http://blog.csdn. ...

  4. [IE编程] IE网页截图技术总结

    IE网页截图是IE编程中的经典问题. IE9 beta发布之后我收到很多关于这方面的问题. 最近我把IE和Windows中这部分相关的代码重新架构了一下,使它们能够在IE9开启硬件加速的情况下完美兼容 ...

  5. 如何以Java实现网页截图技术,根据URL得到网页快照

    // 此方法仅适用于JdK1.6及以上版本 Desktop.getDesktop().browse( new URL("http://www.csdn.net/").toURI() ...

  6. 使用PhantomJS实现网页截图服务

    使用PhantomJS实现网页截图服务 2015-12-12来源:Java教程人气:99 这是上半年遇到的一个小需求,想实现网页的抓取,并保存为图片.研究了不少工具,效果都不理想,不是显示太差了(Ca ...

  7. 网页截图和svg模版动态生成图片Java实现

    网页截图和svg模版动态生成图片Java实现 使用场景 需要Java语言动态生成图片 用流程图简单说明下我这边工作中使用的场景 仅供参考 所以这里就需要生成证书了 我先给大家看下最终实现的图片效果 这 ...

  8. Java phantomjs 网页截图

    简介 根据传入的url对网页进行截图.打开网页和截取图片通过软件phantomjs.exe在后台静默完成.注:该过程不需要打开浏览器 优点: 1.该软件支持多个平台,包括Linux,Windows. ...

  9. java网页截图_java-selenium 实现网页截图

    使用firefox浏览器无头模式在内存里渲染页面,然后用selenium操作浏览器并解析截图.需要安装firefox(也支持chrome),然后下载firefox 驱动 详见:https://gith ...

最新文章

  1. 浅谈ASP.NET的内部机制(一)
  2. 4 angular 重构 项目_vuejs angularjs 框架的一些比较(vue项目重构四)
  3. 干货分享:插画家Anmi的创作技巧与练习方法
  4. centos6.4下安装配置JDK+TOMCAT+MYSQL笔记
  5. Python程序可打印今天的年,月和日
  6. 转载】JQuery中如何传递参数如click(),change()等具体实现
  7. 利用汇编挖掘编程语言的本质
  8. excel 相邻数计算机,Excel计算公式大全.doc
  9. android学习-1
  10. nextpolish安装_希望组自主三代组装软件NextDenovo最新版本全球学术开源!
  11. leetcode刷题日记-课程表 III
  12. Linux下的防火墙
  13. C# 获取PDF文档的字体信息及指定文字的坐标,宽度和高度
  14. 3DMAX渲染了很久还是黑的或有部分黑​屏?
  15. 命令行查看ubuntu版本号
  16. 别去赌场了,你永远赢不了“凯利公式”
  17. 记录一下mac mini 2018 的折腾过程
  18. eclipse hadoop1.2.0配置及wordcount运行
  19. deepin 安装显卡后,可支持双屏展示
  20. .net windows service开发与安装

热门文章

  1. Hive的索引操作【小结】
  2. 为什么需要MapReduce?
  3. 将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件 中
  4. 430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
  5. 【GitHub教程】如何使用Eclipse将本地项目上传到github
  6. C#实验报告 类与对象的访问性:银行账户存取款、新建账户、查询余额
  7. 密码学系列之:碰撞抵御和碰撞攻击collision attack
  8. lazada发货_Lazada怎么发货?最全Lazada发货流程及注意事项!值得收藏!
  9. zoj 3761 Easy billiards 并查集+dfs
  10. 可迭代协议与for-of循环