美好的一天!
我目前正在开发一个需要将某些数据直接打印到打印机的程序。幸运的是,我已经在Java中运行了PrinterJob和Printable实用程序。这是代码:
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
{
;
}
这是实现Printable接口的代码:
@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 Server中部署了这个网页。单击该按钮后,将出现一个对话框,供您选择打印机和布局页面(横向/纵向,纸张尺寸等)。假设我已经在“计算机A”和“计算机B”访问中部署了我的网站(通过Tomcat)并尝试使用打印功能,会发生的情况是打印的弹出对话框仍显示为“计算机A” 。任何人都可以帮我解决这个问题吗?提前谢谢!
此致 ONEB
答案 0 :(得分:0)
因为代码在主机上运行。我想您需要将文档/可打印下载到远程计算机(“计算机B”)并在那里打印。