接口 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. Android画一个随意拖动的圆形

    import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactor ...

  3. 真机调试以及“Could not find Developer Disk Image”问题解决方案

    真机测试步骤 1.运行Xcode,Xcode打开后,点左上角菜单'Xcode',点'Preferences'. 2.在打开的窗口中,点'Accounts',切换到账号页,然后点下面的'+'号,在弹出菜 ...

  4. (原)ubuntu16在torch中使用caffe训练好的模型

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5783006.html 之前使用的是torch,由于其他人在caffe上面预训练了inception模型 ...

  5. 监听SWT文本框只能输入数字

    在SWT开发中,很多时候需要文本框只能输入数字(当输入字母或者其他字符时为无效),这个时候需要给文本框设置监听VerifyListener, code 如下: text.addVerifyListen ...

  6. JavaScript对象(一)——Function对象

    写在最前面: 对象只是带有属性和方法的特殊数据类型(js的7种数据类型:字符串,数字,布尔,数组,对象,null,undefined). JavaScript是面向对象的语言,但是JavaScript ...

  7. qt编程有何替代品(没见过cairo graphics)

    Direct2D www.gaclib.net WPF 图形方面,c++标准有最新的提议(http://isocpp.org/files/papers/N3888.pdf),把cairo graphi ...

  8. Why Does Qt Use Moc for Signals and Slots(QT官方的解释:GUI可以是动态的)

    GUIs are Dynamic C++ is a standarized, powerful and elaborate general-purpose language. It's the onl ...

  9. HtmlNodeType枚举

    HtmlNodeType是一个枚举,用于说明一个节点的类型. 源代码如下所示: public enum HtmlNodeType { Document = 0, Element = 1, Commen ...

  10. WPF制作的一个小功能,智能提示(IntelliSense)

    原文http://www.cnblogs.com/scheshan/archive/2012/06/30/2570867.html 最近WPF项目中遇到一个需求,需要给一个RichTextBox添加智 ...