java能否调取打印机_java – 确定打印机是否可以处理打印作业而无需查找

我一直在打击PrintServiceLookup; lookupPrintServices(DocFlavor flavor,AttributeSet属性)方法在使用初始化时在我们的应用程序中检测打印机的速度过慢。具有超过100个网络打印机的客户报告,执行此代码的行为在第一次运行时性能较差。

看到查找结果正在缓存后,我最初在一个单独的线程(在启动时执行)部署了一个虚拟查找。然而,对于特定客户端,此解决方案不工作。

我目前没有他们的环境,不能看到什么是导致确切的性能问题。

我试图看看一个PrintService是否支持一个给定的MediaSizeName,而不执行查找DocFlavor和AttributeSet。所以我把所有可用的PrintServices和默认的PrintService:

private static final PrintService[] PRINTSERVICES =

PrintServiceLookup.lookupPrintServices(null, null);

private static final PrintService DEFAULTSERVICE =

PrintServiceLookup.lookupDefaultPrintService();

然后,从客户端请求获取PrintService和MediaSizeName。最后,我要求PrintService是否支持MediaSizeName:

private void checkPrintServiceForMediaSize(PrintService pservice) throws MediaSizeNotSupportedException{

if(!pservice.isAttributeValueSupported(_mediaSizeName,null,null))

throw new MediaSizeNotSupportedException("This media size is not supported by the selected printer.");

}

API声明当调用isAttributeValueSupported(Attribute attrval,DocFlavor flavor,AttributeSet属性)时使用null DocFlavor和AttributeSet

this method tells whether this Print Service supports the given printing attribute value for some possible combination of doc flavor and set of attributes

并且已经正确地运行直到现在。但是,我不完全确定如果这是打印机支持所选页面大小时执行的方式。

感谢您对此问题的反馈和经验。

更新

在我实施我的方法的时候,我的工作站决定有严重的网络问题,这需要我一段时间才弄清楚。最后,我的实现已经使用网络工具SoftPerfect Connection Emulator(以模拟网络负载)进行测试,结果没有显着改善。

我将继续测试和更新这个问题。希望我能找到一个解决方案,并与人们在这里分享。我猜初始查找:

private static final PrintService[] PRINTSERVICES =

PrintServiceLookup.lookupPrintServices(null, null);

仍然导致问题。

更新2

测试版构建最终在客户端环境中测试,打印对话框的性能提高了约5倍(在相同的环境下,打印机的初始拉出大约需要大约5分钟)。仍然初始等待时间不是可接受的时间量,但是,是我现在可以做的最好的。我们还从客户端听说打印服务器正在使用,并按照评论中的建议(@Wardy),我将朝这个方向前进。希望我们可以利用打印服务器的优势。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值