Я создал Java-апплет, который будет использоваться в 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;
}
}