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

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

调用打印机Demo的更多相关文章

  1. ios 调用打印机

    源码 无意中玩一个demo发现调用了打印机  才发现ios有快速调用打印机的功能. if ([UIPrintInteractionController isPrintingAvailable] == ...

  2. Java jacob调用打印机打印word文档

    前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...

  3. c# 调用打印机

    1.本地打印机 //添加引用并using System.Management; public static void AvailablePrinters() { ManagementScope ms ...

  4. C# 调用打印机打印文件

    C# 调用打印机打印文件,通常情况下,例如Word.Excel.PDF等可以使用一些对应的组件进行打印,另一个通用的方式是直接启用一个打印的进程进行打印.示例代码如下: using System.Di ...

  5. 开源项目asmjit——调用自定义方法demo以及windbg调试

    asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...

  6. aspose调用打印机打印文档

    aspose很不错的插件,功能非常强大,用到了其中的aspose.word. 如何生成word文档,点击. 下面说说如何如何通过打印机打印文档. aspose提供了一个print方法,通过该方法可以直 ...

  7. C#&.Net干货分享- 构建PrinterHelper直接调用打印机相关操作

    namespace Frame.Printer{    /// <summary>    ///     /// </summary>    public class Prin ...

  8. dubbo泛化调用 小demo

    前两天刚好有个同事来问是否用过 dubbo泛化 调用,不需要通过指定配置.第一次听到的时候,还是有点懵,但觉得有意思,可以学点东西. 立马百度了,找了demo,这篇比较容易上手(http://www. ...

  9. C# 调用打印机 打印 Excel

    打印 Excel 模板 大体思路,通过NPOI操作Excel文件,通过Spire将Excel转成图片,将图片传给系统打印. Spire是收费工具,在微软库中下载Free版本. #region 打印所用 ...

随机推荐

  1. Hacker(七)----黑客常用术语和DOS命令

    掌握基本的黑客术语和DOS命令是一名黑客最基本的技能,黑客术语能够实现自己和其他人之间的正常交流.DOS命令就是DOS操作系统的命令,它是一种面向磁盘的操作命令.黑客在入侵目标主机的过程中经常会使用这 ...

  2. 8.0 BOM对象

    主要的掌握的知识结构图 1 Window 2 控制窗口.框架.弹出窗口 3 利用location对象中的页面信息 4 使用 navigator 对象了解浏览器 1.1 BOM的核心对象是window, ...

  3. WIN7系统JavaEE(java+tomcat7+Eclipse)环境配

    在进行 Java Web环境开发之前,首先要做的第一件事就是搭建开发环境,开发环境搭建成功,接下来便是对整个开发环境进行测试,可以通过编写一个简单的JSP 程序发布到Tomcat应用服务器上运行. 1 ...

  4. Mob短信验证的配置的解释

    原文地址:http://www.jb51.net/article/84946.htm 关于mob短信验证的解释: mob官方是这样写的: repositories{ flatDir{ dirs 'li ...

  5. c++设计模式之策略模式

    概念:通过定义一系列封装的算法,使得调度者可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. 特点: 1)根据不同的情况创建不同的对象. 2)每个对象的方法名相同,但实现却不同. 结构: 1 ...

  6. codeforces 505B Mr. Kitayuta's Colorful Graph(水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Mr. Kitayuta's Colorful Graph Mr. Kitayut ...

  7. (原)error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5577534.html 在debug下使用intel的mkl库时(release下无此问题),莫名的出现 ...

  8. (原)mkl的cblas_sgemm和cblas_dgemm

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5553336.html 参考网址: mkl-11.3.2-developer-reference-c_0 ...

  9. Array类型(二)

    1.concat()方法可以基于当前数组中的所有项创建一个新数组. 先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组. var colors = ["r ...

  10. 问题汇总-20130927-关于rc.local命令无法执行

    场景:/etc/rc.local有语句 /usr/local/apache/bin/apachectl start mysql cactidb -u root -p123456 -e ' set gl ...