我写了一个由 php 调用的小片段,用于在预定义的网络打印机上打印 .postscripts 文件。
虽然我只打印一个文件,但一切顺利,但是当我尝试设置多线程打印管理以一次向打印机发送超过 1 个文件时,只有第一个文件出来。
问题是 PrintJobEvent PrintJobEvent.JOB_COMPLETE 和 PrintJobEvent.JOB_FAILED 永远不会发生,后台处理程序发回的唯一事件是 DATA_TRANSFER_COMPLETE 和 NO_MORE_EVENTS。
我在网络和 Sun 论坛上进行了搜索,但没有找到答案。感谢您之前的任何帮助:)
最后一分钟编辑:如果我从 netbeans 以 Debug模式运行应用程序,并且我手动中断第一个线程,第二个文件将发送到打印机...所以我想它有以某种方式工作
最佳答案
将多个文件并行发送到打印机确实没有意义。你为什么不创建一个队列并将作业发送到一个线程,该线程将顺序地从队列中读取数据,然后将结果发送到打印机。如果不是,您将需要序列化输出。
您可能还会遇到在多线程上初始化打印机的问题。
打印机一次只能打印一个作业。
关于Java打印和多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3165662/