注意:pom文件下载jar包,去我上一个博客看去吧这里就不说了。。
1.下载链接:https://pan.baidu.com/s/1xr-vCAMlv785WiAU7GW94Q
提取码:v2at
2.解压到D:盘,下面代码就不需要修改了,否则修改第三、四行路径。
3.将你需要截图的连接放在倒数第二行里面。替换百度连接。就生成了截图,需要多个链接同时截图,就复制main方法多谢几遍。可以进行优化。
注意:有一坑,如果该网页里面有一个表格,是上下、左右可以滚动的,那这个没有办法想手机那样长截屏一样。。
private static String tempPath = "C:\\Users\\Administrator\\Desktop\\img";// 图片保存目录
private static String BLANK = " ";
// 下面内容可以在配置文件中配置
private static String binPath = "D:\\phantomjs-2.1.1-windows\\bin\\phantomjs.exe";// 插件引入地址
private static String jsPath = "D:\\phantomjs-2.1.1-windows\\examples\\rasterize.js";// js引入地址
// 执行cmd命令
public static String cmd(String imgagePath, String url) {
return binPath + BLANK + jsPath + BLANK + url + BLANK + imgagePath;
}
//关闭命令
public static void close(Process process, BufferedReader bufferedReader) throws IOException {
if (bufferedReader != null) {
bufferedReader.close();
}
if (process != null) {
process.destroy();
process = null;
}
}
/**
* @param userId
* @param url
* @throws IOException
* @throws InterruptedException
*/
public static void printUrlScreen2jpg(String url,String imgName) throws IOException, InterruptedException{
// String imgagePath = tempPath+"\\"+System.currentTimeMillis()+".png";//图片路径
String imgagePath = tempPath+"\\"+imgName+".png";//图片路径
//Java中使用Runtime和Process类运行外部程序
Process process = Runtime.getRuntime().exec(cmd(imgagePath,url));
// Thread.sleep(10*1000L);
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String tmp = "";
while ((tmp = reader.readLine()) != null) {
close(process,reader);
}
System.out.println("success");
}
public static void main(String[] args) throws IOException, InterruptedException {
// String url = "http://192.168.2.69/03 前端/共享数据质量报告/index3.html";//以百度网站首页为例
String url0 = "www.baidu.com";//以百度网站首页为例
Test.printUrlScreen2jpg(url0,"2");
}