【发布时间】:2015-04-27 00:44:28
【问题描述】:
该类用于打印文件。我有一个运行此代码并打开打印对话框的 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();
}
【问题讨论】:
-
您是否收到错误消息 - 打印机本身或程序?这方面的任何其他信息都可能会有所帮助。
-
不,根本没有错误消息。它只是在打印机中停止。我去打印了其他东西(不是来自我的程序),它开始在打印机剩下的页面的底部打印。
-
我必须说这是我听说过的最奇怪的打印机参与行为。您是否可以使用另一台打印机或有朋友可以通过他们自己的打印机运行该程序?这听起来可能是打印机的问题,而不是 java 的问题。
-
我会试试看的。感谢您的帮助
-
你的问题解决了吗?