在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

java调用打印机

2017-2-9 13:05| 发布者: zhangjf| 查看: 587| 评论: 0

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

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-9 21:56

Copyright 2015-2025 djqfx

返回顶部