0
我已经创建了一个Java Applet,它将在IE中用于从远程服务器打印图像。Java Applet在打印过程中锁定IE窗口
我从我的主网页加载一个新的弹出窗口中的小程序,它打印正常,但它在打印时锁定新的弹出浏览器窗口。
当打印作业完成后,弹出窗口再次变为响应。
主要的浏览器窗口在打印过程中保持功能。
在打印过程中,我可以做些什么来使它屈服,使弹出窗口不锁定?
package javaprint;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.ImageObserver;
import java.awt.print.*;
import java.io.IOException;
import java.io.InputStream;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
public class jPrinter implements Printable
{
String ASP_NET_SessionId = null;
ArrayList<URL> pages = new ArrayList<URL>();
BufferedImage lastImage = null;
int lastRequestedIndex = 1;
public EcPrinter(ArrayList<URL> pages, String sessionId)
{
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
ImageIO.setUseCache(false);
this.pages = pages;
ASP_NET_SessionId = sessionId;
}
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
{
if (pageIndex < pages.size())
{
URL url = pages.get(pageIndex);
BufferedImage img = null;
if (pageIndex == lastRequestedIndex)
{
img = lastImage;
}
else
{
URLConnection connection = url.openConnection(Proxy.NO_PROXY);
connection.setRequestProperty("Cookie", "ASP.NET_SessionId=" + ASP_NET_SessionId);
InputStream is = connection.getInputStream();
img = ImageIO.read(is);
lastImage = img;
}
graphics.drawImage(img, 0, 0, null);
return PAGE_EXISTS;
}
return NO_SUCH_PAGE;
}
}