gpt4 book ai didi

java - 为什么即使其他人通过网络访问 PrinterJob[JAVA] 对话框仍然出现在主机中?

转载 作者:行者123 更新时间:2023-11-28 23:50:48 25 4
gpt4 key购买 nike

美好的一天!

我目前正在开发一个需要将特定数据直接打印到打印机的程序。幸运的是,我已经用 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 接口(interface)的代码:

@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 服务器中部署了这个网页。单击该按钮后,会出现一个对话框,供您选择打印机和布局页面(横向/纵向、纸张大小等)。假设我已经在“计算机 A”中部署了我的网站(通过 Tomcat)并且“计算机 B”访问并尝试使用打印功能,发生的情况是用于打印的弹出对话框仍然出现在“计算机 A”上.谁能帮我解决这个问题?提前致谢!

问候,一个人

最佳答案

因为代码在主机上运行。我想您需要将文档/可打印文件下载到远程计算机(“计算机 B”)并在那里打印。

关于java - 为什么即使其他人通过网络访问 PrinterJob[JAVA] 对话框仍然出现在主机中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com