我有一个问题,发生的事情是我要发送以在打印机上打印文件,为此我获得了已联网的打印机的IP地址,然后选择第一个,这是此代码:
PrintService[] service = PrinterJob.lookupPrintServices();// list of ip address
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintService(service[0]);//I get the first address
但是现在我想分配一个字符串,该字符串包含我想要的打印机的IP地址:
\\10.100.20.26\My printer
,而不是我拥有的网络,并且那里不知道如何,有人请帮助我,搜索解决方案,但结果不佳。 最佳答案
我猜想PrintService
具有一些属性,可为您提供其路径。因此,遍历PrintService
的数组以查找与您拥有的路径匹配的一个并使用它:
PrintService[] services = PrinterJob.lookupPrintServices();// list of ip address
String myPrinter = "10.100.20.26\My printer";
PrintService serviceToUse = null;
for (PrintService service: services) {
if (service.getPath().equals(myPrinter)) {
serviceToUse = service;
break;
}
}
if (serviceToUse != null) {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintService(serviceToUse);
}