java如何设置系统默认打印机
1、酋篚靶高需要导入的 Java Print Service API 相关类import javax.print.DocFlavor;import javax.print.attribute.HashPrintRequestAttributeSet;import javax.print.attribute.PrintRequestAttributeSet;import javax.print.PrintService; import javax.print.PrintServiceLookup;//PrintRequestAttributeSet实例。//这用来弹出显示的对话框,并在对话框消失之前返回用户所作的任何更改。PrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();DocFlavorflavor=DocFlavor.INPUT_STREAM.POSTSCRIPT;
2、获取打印机列表//可用的打印机列表(字符串数组)PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);for(int i=0;i<printService.length;i++){ Printers[i]=printService[i].getName();}
3、获取当前默认打印机//当前默认打印机PrintService PS = PrintServiceLookup.lookupDefaultPrintService();//PS.getName();
4、完整代艨位雅剖码importjavax.print.*;importjavax.print.attribute.*;importjava.io.*;publicclassPrinting{publicstaticvoidmain(Stringargs[])throwsException{Stringfilename="E:/JAVA/java实现打印/test.ps";//PrintRequestAttributeSet实例。//这用来弹出显示的对话框,并在对话框消失之前返回用户所作的任何更改。PrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();DocFlavorflavor=DocFlavor.INPUT_STREAM.POSTSCRIPT;PrintServiceprintService[]=PrintServiceLookup.lookupPrintServices(flavor,pras);//用户可选用的PrintService实例数组。PrintServicedefaultService=PrintServiceLookup.lookupDefaultPrintService();//默认的PrintService/*为用户提供一个选择PrintService(打印机)的对话框。gc-用于选择屏幕。null意味着主屏幕或默认屏幕。x-对话框在屏幕坐标中的位置,包括边框y-对话框在屏幕坐标中的位置,包括边框services-可浏览的服务,必须不为null。defaultService-要显示的初始PrintService。flavor-要打印的flavor,或者为null。attributes-输入时为应用程序最初提供的首选项。这不能为null,但可以为空。输出时为反映用户所作的更改的属性。*/PrintServiceservice=ServiceUI.printDialog(null,200,200,printService,defaultService,flavor,pras);if(service!=null){DocPrintJobjob=service.createPrintJob();//创建打印任务FileInputStreamfis=newFileInputStream(filename);DocAttributeSetdas=newHashDocAttributeSet();/**定义要打印的文档,SimpleDoc(,,)里有三个参数:* ·Object代表要打印的内容 *·DocFlavor的一个实例描述数据类型 *·可选的DocAttributeSet包含打印时的属性*/Docdoc=newSimpleDoc(fis,flavor,das);/*启动打印job.print(,)*doc-要打印的文档。如果必须是一个flavor,则此PrintJob必须支持它。*attributes-应用到此PrintJob的作业属性。如果此参数为null,则使用默认属性。**/job.print(doc,pras);Thread.sleep(10000);}System.exit(0);}