打印机停纸-Java打印问题

打印机停纸-Java打印问题,java,printing,Java,Printing,此类用于打印出文件。我有一个JButton(下面的代码中没有显示)运行此代码并打开一个打印对话框。但是,当我点击“打印”时,它会开始打印,但是如果文本没有占据整个页面,它会停止打印,并且不会从打印机中弹出。我是否遗漏了可能导致此问题的原因 try{ FileInputStream textStream; PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); textS

此类用于打印出文件。我有一个JButton(下面的代码中没有显示)运行此代码并打开一个打印对话框。但是,当我点击“打印”时,它会开始打印,但是如果文本没有占据整个页面,它会停止打印,并且不会从打印机中弹出。我是否遗漏了可能导致此问题的原因

try{
        FileInputStream textStream;
        PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
        textStream = new FileInputStream(testFileName);
        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
        Doc test = new SimpleDoc(textStream, flavor, null);

        PrintService[] services = PrintServiceLookup.lookupPrintServices(flavor, aset);

        PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();

        if(services.length == 0){
            if(defaultService==null){
                System.out.println("NO PRINTERS");
            }else{
                DocPrintJob job = defaultService.createPrintJob();
                job.print(test, aset);
            }
        }else{

            PrintService service = ServiceUI.printDialog(null, 200, 200, services, defaultService, flavor, aset);


            if(service != null){
                DocPrintJob job = service.createPrintJob();
                job.print(test, aset);
            }
        }

    }catch (IOException | PrintException e){
        e.printStackTrace();
    }

javax.print
您的代码如下:

读取某些(未指定=
输入流.AUTOSENSE
)格式的
输入流
(某些文件),并将打印作业“提交”(
.print
)到操作系统打印机系统

接下来会发生什么完全取决于您的操作系统设置,如正确安装的打印机驱动程序和打印机连接

在您的情况下,目标队列可能不支持您尝试打印的文件格式(也称为PDL)。甚至基于文本的PDL也用于打印机控制。Windows和Unix/Mac系统有不同的方法。默认情况下,CUPS可以处理PDF或Postscript等PDL


一旦job.print()方法结束,就由操作系统来处理打印数据。要跟踪问题,您应该检查OSs打印机系统。可能在Unix上。

您是否收到错误消息-打印机本身或程序?这方面的任何附加信息都可能会有所帮助。没有任何错误消息。它只是停在打印机里。我去打印其他东西(不是从我的程序中),它开始在打印机剩余页面的底部打印。我必须说,这是我听说过的打印机参与的最奇怪的行为。您是否有权使用其他打印机,或者有朋友可以通过自己的打印机运行程序?这听起来可能是打印机的问题,而不是java的问题。我试试看。谢谢你的帮助你解决问题了吗?