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

标签 java jakarta-ee printing java-print

我正在从事在网络打印机上用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;
}

最佳答案

您需要先配置打印机。

第一行位于 https://docs.oracle.com/javase/tutorial/2d/printing/printable.html选定的打印机

请使用PrinterJob而不是PrintServiceLookup

关于java - 如何在java中直接在网络打印机上打印文件。应用程序运行的系统中未配置打印机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48341071/

相关文章:

java - 如何将列表从类(class)传递到 Activity ?

java - Cobertura 覆盖率报告和检查

java - EJB:自定义身份验证和授权

java - 缩放 JComponent 以适合页面页面

java - 网址为 : "/servlet" goes to "ip/servlet" instead of "ip/app/servlet"

java - 如何使用 JodaTime 获取两个日期之间的时差(以毫秒为单位)

eclipse - 如何将 CSS 自动完成添加到 eclipse

database - 在测试 API 时编写用于验证数据库条目的测试代码

css - Chrome 打印预览与 DEVTools 中的不同

打印 Canvas