如何在java网络打印机上直接打印文件。。打印机未在运行应用程序的系统中配置?

如何在java网络打印机上直接打印文件。。打印机未在运行应用程序的系统中配置?,java,jakarta-ee,printing,java-print,Java,Jakarta Ee,Printing,Java Print,我正在做一个在网络打印机上用java实现打印的项目,打印机没有配置。打印机服务查找始终返回null时出现问题 在Java应用程序中,是否仍要在未配置的打印机上打印文件 下面的代码无助于检测打印机 public int printDoc(InputStream is) throws PrintException, FileNotFoundException { PrintService printService=PrintServiceLookup.lookupDefaultPrintSe

我正在做一个在网络打印机上用java实现打印的项目,打印机没有配置。打印机服务查找始终返回null时出现问题

在Java应用程序中,是否仍要在未配置的打印机上打印文件

下面的代码无助于检测打印机

public int printDoc(InputStream is) throws PrintException, FileNotFoundException {
    PrintService printService=PrintServiceLookup.lookupDefaultPrintService();
    DocPrintJob job = printService.createPrintJob();
    job.addPrintJobListener(new PrintJobAdapter() {
        public void printDataTransferCompleted(PrintJobEvent event){
            System.out.println("transfer complete");
        }
        public void printJobNoMoreEvents(PrintJobEvent event){
            System.out.println("received no more events");
        }
    });

      Doc doc=new SimpleDoc(is, DocFlavor.INPUT_STREAM.AUTOSENSE, null);
      // Doc doc=new SimpleDoc(fis, DocFlavor.INPUT_STREAM.JPEG, null);
      PrintRequestAttributeSet attrib=new HashPrintRequestAttributeSet();
      attrib.add(new Copies(1));
      String printeraddr= "ipp://blrprt01.blr.network18.com/23Flr_Printer1";
      PrinterName prName =new PrinterName(printeraddr, null);

      attrib.add(prName);
      job.print(doc, attrib);
    return 0;
}

您需要先配置打印机

第一线 选择的打印机


请使用PrinterJob而不是PrintServiceLookup。

您的代码在哪里?如果您从未配置过打印机,是否希望程序开始在打印机上打印?如果目标打印机的墨水/耗材极其昂贵,该怎么办?您如何知道您正在运行的程序生成了它?这不是Java问题—O/S需要对其进行配置是有原因的。