首页 > 解决方案 > 在客户端列出打印机 (Java)

问题描述

我有一个在服务器上运行的应用程序,我希望能够检测到可以从任何计算机访问的打印机。

也就是说,在客户端,我希望列出打印机,现在,当应用程序从服务器运行时,它显示可从服务器访问的打印机。

这个想法是,从您要访问应用程序的位置,即从任何计算机,您可以列出它们各自的打印机。

我不知道是否可以通过该计算机的 IP 地址获得选项,但我一直无法找到解决该问题的方法:

public List<String> printAvailable() {

        // busca los servicios de impresion...
        PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
        //PrintService[] servicio= PrintServiceLookup

        List <String> Impresoras= new ArrayList<>();
        // -- ver los atributos de las impresoras...

        for (PrintService printService : services) {

            Impresoras.add(printService.getName());
            System.out.println(" ---- IMPRESORA: " + printService.getName());

            PrintServiceAttributeSet  printServiceAttributeSet= printService.getAttributes();


            System.out.println("--- atributos");

            // todos los atributos de la impresora
            Attribute[] a = printServiceAttributeSet.toArray();
            for (Attribute unAtribute : a) {
                System.out.println("atributo: " + unAtribute.getName());
            }

                    System.out.println("--- viendo valores especificos de los atributos ");

                    // valor especifico de un determinado atributo de la impresora
                    System.out.println("PrinterLocation: " + printServiceAttributeSet.get(PrinterLocation.class));
                    System.out.println("PrinterInfo: " + printServiceAttributeSet.get(PrinterInfo.class));
                    System.out.println("PrinterState: " + printServiceAttributeSet.get(PrinterState.class));
                    System.out.println("Destination: " + printServiceAttributeSet.get(Destination.class));
                    System.out.println("PrinterMakeAndModel: " + printServiceAttributeSet.get(PrinterMakeAndModel.class));
                    System.out.println("PrinterIsAcceptingJobs: " + printServiceAttributeSet.get(PrinterIsAcceptingJobs.class));

        }
        return Impresoras;
}

在这里,我得到了列出打​​印机的服务,但这在应用程序在本地运行的地方执行。

如果您能给我一个线索,我将不胜感激,因为我对 Java 了解不多,我正在尝试使用示例。

问候!

PD:我必须通过应用程序打印打印机。使用浏览器的打印选项对我来说不是一个选项。

标签: javaspring-mvcspring-bootprinting

解决方案


推荐阅读