PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性。

接口 PrintService 是 DocPrintJob 的工厂。PrintService 描述了打印机的功能,并可查询它来了解打印机支持的属性。 

Java代码  

  1. import java.io.File;  
  2. import java.io.FileInputStream;  
  3.   
  4. import javax.print.Doc;  
  5. import javax.print.DocFlavor;  
  6. import javax.print.DocPrintJob;  
  7. import javax.print.PrintService;  
  8. import javax.print.PrintServiceLookup;  
  9. import javax.print.ServiceUI;  

10. import javax.print.SimpleDoc;  

11. import javax.print.attribute.DocAttributeSet;  

12. import javax.print.attribute.HashDocAttributeSet;  

13. import javax.print.attribute.HashPrintRequestAttributeSet;  

14. import javax.swing.JFileChooser;  

  1. 15.   
  2. 16.     /** 
  3. 17.      * 建立与打印机的连接 
  4. 18.      * @author Administrator 
  5. 19.      * 
  6. 20.      */  

21. public class PrintDemo {  

  1. 22.       
  2. 23.     public static void main(String[] args) {  
  3. 24.         JFileChooser fileChooser = new JFileChooser(); //创建打印作业  
  4. 25.         int state = fileChooser.showOpenDialog(null);  
  5. 26.         if(state == fileChooser.APPROVE_OPTION){  
  6. 27.             File file = new File("D:/zkyzl.txt"); //获取选择的文件  
  7. 28.             //构建打印请求属性集  
  8. 29.             HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();  
  9. 30.             //设置打印格式,因为未确定类型,所以选择autosense  
  10. 31.             DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;  
  11. 32.             //查找所有的可用的打印服务  
  12. 33.             PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);  
  13. 34.             //定位默认的打印服务  
  14. 35.             PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();  
  15. 36.             //显示打印对话框  
  16. 37.             PrintService service = ServiceUI.printDialog(null, 200, 200, printService,   
  17. 38.                     defaultService, flavor, pras);  
  18. 39.             if(service != null){  
  19. 40.                 try {  
  20. 41.                     DocPrintJob job = service.createPrintJob(); //创建打印作业  
  21. 42.                     FileInputStream fis = new FileInputStream(file); //构造待打印的文件流  
  22. 43.                     DocAttributeSet das = new HashDocAttributeSet();  
  23. 44.                     Doc doc = new SimpleDoc(fis, flavor, das);  
  24. 45.                     job.print(doc, pras);  
  25. 46.                 } catch (Exception e) {  
  26. 47.                     e.printStackTrace();  
  27. 48.                 }  
  28. 49.             }  
  29. 50.         }  
  30. 51.     }  

52. }  

 

posted @ 2016-01-14 09:52  轩辕逍遥  阅读(2611)  评论(0)    收藏  举报