多语言展示
当前在线:524今日阅读:138今日分享:34

java如何设置系统默认打印机

可以使用 Java Print Service API 接口来实现打印操作。先获取可用的打印机列表,再通过 PrintServiceLookup.lookupDefaultPrintService(); 方法来获取系统默认的打印设备进行打印。
工具/原料
1

电脑

2

打印驱动

3

Java Print Service API

方法/步骤
1

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实例。//这用来弹出显示的对话框,并在对话框消失之前返回用户所作的任何更改。PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;

2

2、获取打印机列表//可用的打印机列表(字符串数组) PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);for(int i=0;i

3

3、获取当前默认打印机//当前默认打印机PrintService PS = PrintServiceLookup.lookupDefaultPrintService();//PS.getName();

4

4、完整代码import javax.print.*;import javax.print.attribute.*;import java.io.*;public class Printing {    public static void main(String args[]) throws Exception {        String filename = 'E:/JAVA/java实现打印/test.ps';        //PrintRequestAttributeSet实例。        //这用来弹出显示的对话框,并在对话框消失之前返回用户所作的任何更改。        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();        DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;        PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);//用户可选用的PrintService实例数组。        PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService(); //默认的PrintService        /*为用户提供一个选择 PrintService(打印机)的对话框。            gc - 用于选择屏幕。null 意味着主屏幕或默认屏幕。            x - 对话框在屏幕坐标中的位置,包括边框            y - 对话框在屏幕坐标中的位置,包括边框            services - 可浏览的服务,必须不为 null。            defaultService - 要显示的初始 PrintService。            flavor - 要打印的 flavor,或者为 null。            attributes - 输入时为应用程序最初提供的首选项。这不能为 null,但可以为空。输出时为反映用户所作的更改的属性。        */         PrintService service = ServiceUI.printDialog(null, 200, 200,printService, defaultService, flavor, pras);        if (service != null) {            DocPrintJob job = service.createPrintJob();  //创建打印任务            FileInputStream fis = new FileInputStream(filename);            DocAttributeSet das = new HashDocAttributeSet();            /*             * 定义要打印的文档,SimpleDoc(,,)里有三个参数:             *      ·Object 代表要打印的内容             *      ·DocFlavor的一个实例描述数据类型             *      ·可选的DocAttributeSet 包含打印时的属性             */            Doc doc = new SimpleDoc(fis, flavor, das);            /*   启动打印 job.print( , )             * doc - 要打印的文档。如果必须是一个 flavor,则此 PrintJob 必须支持它。             *  attributes - 应用到此 PrintJob 的作业属性。如果此参数为 null,则使用默认属性。              * */            job.print(doc, pras);            Thread.sleep(10000);        }        System.exit(0);    }

注意事项

读者朋友欲了解更多可自行搜索关于“Java Print Service API”的资料。

推荐信息