Java调用外部程序

import java.io.*;
public class RuntimeTest {
    public static void main(String[] args) throws IOException, InterruptedException {
        long begin = System.currentTimeMillis();
        //调用外部程序
        Process exec = Runtime.getRuntime().exec("ping 127.0.0.1");
        InputStream inputStream = exec.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"GBK"));
        String line = null;
        //读取外部程序的输出结果
        System.out.println("开始输出外部程序的返回数据");
        while(null!=(line=reader.readLine())){
            System.out.println(line);
        }
        System.out.println("耗时:"+(System.currentTimeMillis()-begin)+"ms");
    }
}

 

利用POI将PPT转成图片

  1. 下载POI:http://poi.apache.org/download.html
  2. 导入poi.jar与poi-scratchpad.jar(后边的这个必须导,不然没有HSLF这个包)
SlideShow slideShow = new SlideShow(hslfSlideShow);
if(slideShow.getSlides()!=null&&slideShow.getSlides().length>0){
	Slide slide = slideShow.getSlides()[0];//读取第一页
	TextRun[] textRuns = slide.getTextRuns();
	for (TextRun textRun : textRuns) {
		for (RichTextRun richTextRun  : textRun.getRichTextRuns()) {
			richTextRun.setFontName("宋体");//防止中文乱码
		}
	}
	BufferedImage img = new BufferedImage(
		slideShow.getPageSize().width,
		slideShow.getPageSize().height,
		BufferedImage.TYPE_INT_RGB);   
	Graphics2D graphics = img.createGraphics();
	slide.draw(graphics);
	FileOutputStream fos = new FileOutputStream("d:/p1.png");
	ImageIO.write(img, "png", fos);
	fos.close();
}

 

IFrame 跨域自动高

先说一下不跨域的autoheight解决方案:iframe里

window.parent.frames[“frameId”].height=document.documentElement.scrollHeight

就可以。

如果跨域的话可以获取到window.parent这个对象,但是获取不到其他的对象,因为跨域。

但是可以这样解决:

在iframe里面再插入一个iframe,这个iframe是和最外层的同域的,即:

aaa.com/index.html – > bbb.com/iframe.html -> aaa.com/agent.html。

这个agent中可以用window.parent.parent来做上面提到的没有跨域做的那些事。

但是agent里也没有办法获取到他的parent即iframe.html的高。

解决办法是用js创建这个agent iframe,创建时将网页的高度作为参数穿进去如agent.html?height=800,agent里再根据这个参数设parent.parent