电脑
打印驱动
Java Print Service API
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、获取打印机列表//可用的打印机列表(字符串数组) PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);for(int i=0;i
3、获取当前默认打印机//当前默认打印机PrintService PS = PrintServiceLookup.lookupDefaultPrintService();//PS.getName();
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”的资料。