我有一个问题,发生的事情是我要发送以在打印机上打印文件,为此我获得了已联网的打印机的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);
}

09-12 11:41