java 把jsp 保存成图片_将jsp页面转化为图片或pdf(一)(qq:1324981084)
public class Urlimage extendsJPanel {/*** jsp转jpg*/
private static final long serialVersionUID = 1L;//行分隔符
final static public String LS = System.getProperty("line.separator", "\n");//文件分割符
final static public String FS = System.getProperty("file.separator", "\\");//以javascript脚本获得网页全屏后大小(建议事先保存网页的宽高,由于执行速度的问题,有时获得不到宽高)
final staticStringBuffer jsDimension;static{
jsDimension= newStringBuffer();
jsDimension.append("var width = 0;").append(LS);
jsDimension.append("var height = 0;").append(LS);
jsDimension.append("if(document.documentElement) {").append(LS);
jsDimension.append(" width = Math.max(width, document.documentElement.scrollWidth);").append(LS);
jsDimension.append(" height = Math.max(height, document.documentElement.scrollHeight);").append(LS);
jsDimension.append("}").append(LS);
jsDimension.append("if(self.innerWidth) {").append(LS);
jsDimension.append(" width = Math.max(width, self.innerWidth);").append(LS);
jsDimension.append(" height = Math.max(height, self.innerHeight);").append(LS);
jsDimension.append("}").append(LS);
jsDimension.append("if(document.body.scrollWidth) {").append(LS);
jsDimension.append(" width = Math.max(width, document.body.scrollWidth);").append(LS);
jsDimension.append(" height = Math.max(height, document.body.scrollHeight);").append(LS);
jsDimension.append("}").append(LS);
jsDimension.append("return width + ':' + height;");
}public Urlimage(final String url, final int maxWidth, final int maxHeight,final String fileName,finalString path) {super(newBorderLayout());
JPanel webBrowserPanel= new JPanel(newBorderLayout());final JWebBrowser webBrowser = new JWebBrowser(null);
webBrowser.setBarsVisible(false);
webBrowser.navigate(url);
webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
add(webBrowserPanel, BorderLayout.CENTER);
JPanel panel= new JPanel(new FlowLayout(FlowLayout.CENTER, 4, 4));
webBrowser.addWebBrowserListener(newWebBrowserAdapter() {//监听加载进度
public voidloadingProgressChanged(WebBrowserEvent e) {//当加载完毕时
if (e.getWebBrowser().getLoadingProgress() == 100) {
//建议在这里写一个死循环,一直执行直到获得网页的宽高位置,这里我就不写程序了
// while(){};
String result=(String) webBrowser.executeJavascriptWithResult(jsDimension.toString());//只想js代码,获得网页的宽和高int index = result == null ? -1 : result.indexOf(":");
NativeComponent nativeComponent=webBrowser.getNativeComponent();
Dimension originalSize=nativeComponent.getSize();
Dimension imageSize= new Dimension(Integer.parseInt(result.substring(0, index)),
Integer.parseInt(result.substring(index+ 1)));
imageSize.width= Math.max(originalSize.width, imageSize.width + 50);
imageSize.height= Math.max(originalSize.height, imageSize.height + 50);
nativeComponent.setSize(imageSize);
BufferedImage image= newBufferedImage(imageSize.width, imageSize.height,
BufferedImage.TYPE_INT_RGB);//建立一个宽高颜色固定的图片容器
nativeComponent.paintComponent(image);//绘制图片,但有时候会数组越界,因为走的是线程和内部抛出异常,所以无法抓住
nativeComponent.setSize(originalSize);//当网页超出目标大小时
if (imageSize.width > maxWidth || imageSize.height >maxHeight) {//截图部分图形
image = image.getSubimage(0, 0, maxWidth, maxHeight);/** 此部分为使用缩略图 int width = image.getWidth(), height =
* image .getHeight(); AffineTransform tx = new
* AffineTransform(); tx.scale((double) maxWidth /
* width, (double) maxHeight / height);
* AffineTransformOp op = new AffineTransformOp(tx,
* AffineTransformOp.TYPE_NEAREST_NEIGHBOR); //缩小 image
* = op.filter(image, null);*/}try{//输出图像//
final String fileNameLoc = "d:/huiyou21.jpg";
ImageIO.write(image,"jpg", newFile(fileNameLoc));//改动这里变换格式}catch(IOException ex) {
ex.printStackTrace();
}
}
}
}
);
add(panel, BorderLayout.SOUTH);
}
}
java 把jsp 保存成图片_将jsp页面转化为图片或pdf(一)(qq:1324981084)相关推荐
- html转图片_如何将html转化为图片
需要将动态生成的html生成一个图片,然后让用户长按保存发给朋友或者朋友圈.如何将html转化为图片呢,一般是4个步骤. 1,在html里新建canvas画布 /**要生成图片的html*/<p ...
- java代码在jsp中怎么写_在jsp中写java代码
该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...
- java工单系统源码_基于jsp的工单管理系统-JavaEE实现工单管理系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的工单管理系统, 该项目可用各类java课程设计大作业中, 工单管理系统的系统架构分为前后台两部分, 最终实现在线上 ...
- java网上报名系统源码_基于jsp的网上报名系统-JavaEE实现网上报名系统 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上报名系统, 该项目可用各类java课程设计大作业中, 网上报名系统的系统架构分为前后台两部分, 最终实现在线上 ...
- java jsp教师工资计算_基于jsp的教师工资管理-JavaEE实现教师工资管理 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的教师工资管理, 该项目可用各类java课程设计大作业中, 教师工资管理的系统架构分为前后台两部分, 最终实现在线上 ...
- Java共享充电宝地图应用_基于jsp的共享充电宝-JavaEE实现共享充电宝 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的共享充电宝, 该项目可用各类java课程设计大作业中, 共享充电宝的系统架构分为前后台两部分, 最终实现在线上进行 ...
- java实现贴吧源码_基于jsp的贴吧系统-JavaEE实现贴吧系统 - java项目源码
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的贴吧系统, 该项目可用各类java课程设计大作业中, 贴吧系统的系统架构分为前后台两部分, 最终实现在线上进行贴吧 ...
- java转成图片_java 将数据内容转化为图片
将数据内容转化为图片 public class WqcTestController { public static void createImage(String fileLocation, Buff ...
- 将jsp页面转化为图片或pdf(一)(qq:2798641729)
在项目中遇见了将jsp页面转化为pdf的问题,试过itext,但是itext需要标准的html代码,我的页面中的一些属性是itext所不识别的,所以努力了一段时间后就放弃了,后来发现htmlutil抓 ...
- python pdf删除图片_使用PyMuPdf提取、删除及替换PDF中的图片文件
有时候想把PDF中的图片文件提取出来,身为程序员的我当然是自己写段代码来实现,先看看了网上的方法,都是逐行遍历,正则匹配来提取什么的,其实没有那么复杂,PyMuPdf官方文档里自带就有提取图片文件的方 ...
最新文章
- 二维几何基础大合集!《计算几何全家桶(一)》(基础运算、点、线、多边形、圆、网格)
- javascript音频管理方案:SoundManager2
- Vmware学习虚拟机操作时遇到的问题和解决
- sock 文件方式控制宿主机_sock
- Java 7:复制和移动文件和目录
- 用matlab做纹理合成,关于图像纹理合成的Matlab例程
- react 执行入口_如何使用React执行CRUD操作
- css实现强制不换行/自动换行/强制换行
- 随想录(c编译器的实现)
- VMware在NAT模式下配置静态IP
- 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
- 未知账户(S-1-5-21)无法删除的问题
- day20T3改错记
- 谷歌支付服务端服务账号订单校验
- coreldraw梯形校正_有哪些比较好的CDR教程?
- 地址栏中输入IP地址提示指定的网络名不再可用的解决方法
- 联想电脑自动锁屏解决方法
- OFDM载波间隔_NBloT上行子载波
- Python实现阶跃函数、sigmoid函数、ReLU函数
- DDD与数据事务脚本