gpt4 book ai didi

java - 从 Java 打印 - 打印作业永远挂起

转载 作者:行者123 更新时间:2023-11-30 05:04:22 25 4
gpt4 key购买 nike

我有一个服务器端打印功能,从 Windows 2008 服务器上的 Tomcat 调用,在这种情况下在默认打印机上打印,并且它永远挂起。这是堆栈跟踪:

at sun.awt.windows.WPrinterJob._startDoc(Native Method)
at sun.awt.windows.WPrinterJob.startDoc(WPrinterJob.java:1249)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1371)
at com.gnostice.pdfone.PdfPrinter.a(Unknown Source)
at com.gnostice.pdfone.PdfPrinter.print(Unknown Source)
at com.gnostice.pdfone.PdfPrinter.print(Unknown Source)
at de.ikoffice.print.PrintService.printPDF(PrintService.java:64)
at de.ikoffice.document.Document.printPDFToPrinter(Document.java:261)
at de.ikoffice.document.Document.start(Document.java:91)
at de.ikoffice.document.DocumentService.processMessage(DocumentService.java:48)

罪魁祸首是打印机“Microsoft XPS document writer”,它似乎在某些后台 shell 上下文中打开一个窗口(服务器是作为用户 Tomcat 运行的 Tomcat 5.5),并永远卡在那里,我不知道是什么处理这种情况的最好方法。

有什么想法吗?对打印机名称进行硬编码并禁止在其上打印? stop() 线程?它是一个 native 函数,因此我无法使用所需的结果来中断()线程。

最佳答案

我们在使用物理打印机时也遇到了类似的问题。根据我在网上读到的内容,Windows Server 2008 在没有用户界面的特殊 session 中运行服务,因此任何弹出窗口都会挂起应用程序。

您可以从服务器上删除 XPS Writer 并使用真正的打印机吗?或者明确检查 XPS Writer 并且不允许用户打印到它?

我在网络上看到过有关允许在 WS 2008 下进行用户交互的各种技术的提及,但无法确定它们是否适合您的应用程序的需求。

关于java - 从 Java 打印 - 打印作业永远挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5634198/

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