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

你可能感兴趣的:(个人日记)