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)相关推荐

  1. html转图片_如何将html转化为图片

    需要将动态生成的html生成一个图片,然后让用户长按保存发给朋友或者朋友圈.如何将html转化为图片呢,一般是4个步骤. 1,在html里新建canvas画布 /**要生成图片的html*/<p ...

  2. java代码在jsp中怎么写_在jsp中写java代码

    该服务器上的所有的访问者的所有 jsp 页面 D.该服务器上的所有的访问者的所有 jsp 页面和 Java 程序 6.在 JSP 中调用 JavaBean 时不会用到的标记是( )...... jav ...

  3. java工单系统源码_基于jsp的工单管理系统-JavaEE实现工单管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的工单管理系统, 该项目可用各类java课程设计大作业中, 工单管理系统的系统架构分为前后台两部分, 最终实现在线上 ...

  4. java网上报名系统源码_基于jsp的网上报名系统-JavaEE实现网上报名系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的网上报名系统, 该项目可用各类java课程设计大作业中, 网上报名系统的系统架构分为前后台两部分, 最终实现在线上 ...

  5. java jsp教师工资计算_基于jsp的教师工资管理-JavaEE实现教师工资管理 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的教师工资管理, 该项目可用各类java课程设计大作业中, 教师工资管理的系统架构分为前后台两部分, 最终实现在线上 ...

  6. Java共享充电宝地图应用_基于jsp的共享充电宝-JavaEE实现共享充电宝 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的共享充电宝, 该项目可用各类java课程设计大作业中, 共享充电宝的系统架构分为前后台两部分, 最终实现在线上进行 ...

  7. java实现贴吧源码_基于jsp的贴吧系统-JavaEE实现贴吧系统 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的贴吧系统, 该项目可用各类java课程设计大作业中, 贴吧系统的系统架构分为前后台两部分, 最终实现在线上进行贴吧 ...

  8. java转成图片_java 将数据内容转化为图片

    将数据内容转化为图片 public class WqcTestController { public static void createImage(String fileLocation, Buff ...

  9. 将jsp页面转化为图片或pdf(一)(qq:2798641729)

    在项目中遇见了将jsp页面转化为pdf的问题,试过itext,但是itext需要标准的html代码,我的页面中的一些属性是itext所不识别的,所以努力了一段时间后就放弃了,后来发现htmlutil抓 ...

  10. python pdf删除图片_使用PyMuPdf提取、删除及替换PDF中的图片文件

    有时候想把PDF中的图片文件提取出来,身为程序员的我当然是自己写段代码来实现,先看看了网上的方法,都是逐行遍历,正则匹配来提取什么的,其实没有那么复杂,PyMuPdf官方文档里自带就有提取图片文件的方 ...

最新文章

  1. 二维几何基础大合集!《计算几何全家桶(一)》(基础运算、点、线、多边形、圆、网格)
  2. javascript音频管理方案:SoundManager2
  3. Vmware学习虚拟机操作时遇到的问题和解决
  4. sock 文件方式控制宿主机_sock
  5. Java 7:复制和移动文件和目录
  6. 用matlab做纹理合成,关于图像纹理合成的Matlab例程
  7. react 执行入口_如何使用React执行CRUD操作
  8. css实现强制不换行/自动换行/强制换行
  9. 随想录(c编译器的实现)
  10. VMware在NAT模式下配置静态IP
  11. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)
  12. 未知账户(S-1-5-21)无法删除的问题
  13. day20T3改错记
  14. 谷歌支付服务端服务账号订单校验
  15. coreldraw梯形校正_有哪些比较好的CDR教程?
  16. 地址栏中输入IP地址提示指定的网络名不再可用的解决方法
  17. 联想电脑自动锁屏解决方法
  18. OFDM载波间隔_NBloT上行子载波
  19. Python实现阶跃函数、sigmoid函数、ReLU函数
  20. DDD与数据事务脚本

热门文章

  1. 神经元网络算法的思想,神经元网络算法有哪些
  2. MySQL~B+树索引(聚簇、非聚簇)和一些B+树索引的注意点
  3. Delphi XE2 compiler performance
  4. 2021年深圳高新技术企业申报及培育入库时间和条件是什么
  5. 抖音账号养号技巧揭秘
  6. css常见题——水平居中、垂直居中、水平垂直居中
  7. 七牛php回调响应,关于直播状态回调
  8. [信息论与编码理论专题-2]:信息与熵
  9. C语言read()函数:读文件函数
  10. jquery:手风琴图片轮播