Добрый день!
В настоящее время я работаю над программой, которая должна печатать определенные данные непосредственно на принтер.К счастью, я столкнулся с PrinterJob и утилитой Printable на Java.Вот код:
SWFPrintableUtil oUtil = new SWFPrintableUtil(sResult);//SWFPrintableUtil implements Printable
PrinterJob oPrinterJob = PrinterJob.getPrinterJob();
oPrinterJob.setPrintable(oUtil);
boolean bDoPrint = oPrinterJob.printDialog();
if ( bDoPrint )
{
try
{
oPrinterJob.print();
}
catch (PrinterException e)
{
e.printStackTrace();
}
}
else
{
;
}
Это код, который реализует интерфейс для печати:
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
throws PrinterException {
if (pageIndex != 0)
{
return NO_SUCH_PAGE;
}
System.out.println(csContents);
Graphics2D g2d = (Graphics2D) graphics;
int nX = (int) pageFormat.getImageableX();
int nY = (int) pageFormat.getImageableY();
g2d.translate(nX, nY);
Font oFont = new Font("Serif", Font.PLAIN, 8);
FontMetrics oMetrics = graphics.getFontMetrics(oFont);
int nLineHeight = oMetrics.getHeight();
BufferedReader oReader = new BufferedReader(new StringReader(csContents));
String sLine = "";
try
{
while( (sLine = oReader.readLine()) != null )
{
nY = nY + nLineHeight;
g2d.drawString(sLine, nX, nY);
}
}
catch (IOException e)
{
e.printStackTrace();
}
return PAGE_EXISTS;
}
Видимо, этот код может делать то, что я хочу.Этот код запускается через веб-страницу после нажатия кнопки.Я развернул эту веб-страницу на сервере Tomcat.После нажатия кнопки появится диалоговое окно, в котором вы сможете выбрать свой принтер и расположить макет страницы (альбомная / книжная, размер бумаги и т. Д. И т. Д.).Допустим, я развернул свой веб-сайт (через Tomcat) в «Компьютер A» и «компьютер B» получает доступ и пытается использовать функцию печати, в результате всплывающее диалоговое окно для печати по-прежнему отображается «Компьютер A»,Может ли кто-нибудь помочь мне решить эту проблему?Заранее спасибо!
С уважением, Oneb