fis = new FileInputStream(file);
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; // FILE IS .txt TYPE
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
//pras.add(MediaSizeName.ISO_A4);
//pras.add(new Copies(1));
PrintService printService[] =PrintServiceLookup.lookupPrintServices(flavor, pras);
System.out.println("Print Service:"+printService);
PrintService defaultService =PrintServiceLookup.lookupDefaultPrintService();
System.out.println("Default Service:"+defaultService);
PrintService service = ServiceUI.printDialog(null, 200, 200,printService, defaultService, flavor, pras);
if (service != null)
{
System.out.println("Selected Service"+service);
DocPrintJob job = service.createPrintJob();
job.addPrintJobListener(new MyPrintJobListener());
System.out.println("JOB:"+job);
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
System.out.println("Start of Print");
job.print(doc, pras);
System.out.println("End of Print");
i=1;
}
else
{
i=0;
}
我正在开发一个Web应用程序,用户希望打印保存在文件中的数据,其中包含来自数据库的详细信息。我将上述代码放在一个方法中,当调用它时为用户提供打印对话框,他可以从连接到他的机器的打印机列表中选择打印机。 如果我尝试打印到本地打印机,文件将被发送到C:\ WINDOWS \ system32 \ spool文件夹并进行打印。 但是在网络打印机的情况下不会发生这种情况 我在网络上的打印机是佳能MP280系列打印机 我能够在打印机列表中看到它,但无法打印我的文件
答案 0 :(得分:0)
网络上的打印机是否共享? 如果共享打印机并且已安装PC /笔记本电脑。 您必须选择打印服务名称列表数组之一
e.g
PrintService defaultPrintservice = printServices[0];
如果打印机未安装在PC /笔记本电脑中,则必须设置位置网络打印机的路径
e.g
new PrinterName("ipp:\\\\witnw21va\\ipp\\ITDepartment-HP4050", null);
我希望它能解决你的问题:)对不起我的英语:D