最近用java做一个项目,涉及到网页截图的功能。
在决定使用第三方控件前,尝试了Robot和DJNativeSwing组件这两种方法截图,没有取得预期的效果(哈哈,本人技术有限)。于是决定使用第三方控件IECapt截图,现分享一下:
package com.util;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class PageToImage {
@SuppressWarnings("unused")
public Boolean GetPic(String URL,String filename)
{
Boolean r=true;
String path=DoSomething.TomcatNowPath+"\\webapps\\shotcharts\\";//IECapt.exe所在目录
Process pro = null;
//CMD命令:1.切换至IECapt.exe所在目录 2.调用IECapt截图。注意多条CMD命令使用&&连接
String cmdString="cmd.exe /c c:&& cd /d "+path+" && IECapt --url="+URL+" --out="+filename+" --min-width=1100";
try {
Runtime rt = Runtime.getRuntime();
if(pro != null)
{
pro.destroy();
pro = null;
}
pro = rt.exec(cmdString);
pro.waitFor();
}
catch(IOException e)
{
r=false;
e.printStackTrace();
}
catch (InterruptedException e)
{
r=false;
e.printStackTrace();
}
catch (Exception e)
{
r=false;
e.printStackTrace();
}
return r;
}
}
以上IECapt是截取IE内核浏览器网页图片的控件,有兴趣的小伙伴尝试一下跨平台的控件CutyCapt去截图。