接口 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. 07_DICTIONARY_ACCESSIBILITY

    07_DICTIONARY_ACCESSIBILITY 控制对系统权限的限制: TRUE 有相应系统权限,允许访问SYS下的对象. FALSE 确保拥有可以访问任何对象的系统权限,但不可以访问SYS下 ...

  2. [Python学习笔记][Python内置函数]

    Python 常用内建函数 比较基础的列表 abs(x) 求绝对值 pow(x,y) 返回x的y次方,等同于x**y round(x[,小数位数]) 对x进行四舍五入,若不指定位数,则返回整数 chr ...

  3. Android adb不是内部或外部命令 (转)

    dos窗口运行adb命令出现错误:adb不是内部或外部命令…. 出现问题原因及解决办法: 1.没有配置相关环境变量. 只要将android 的sdk安装路径添加到系统变量Path中即可. (以win7 ...

  4. iOS 证书错误 Certificates下面的 App Store and Ad Hoc是灰的?? 点不了

    原因 因为一个用户名下只能同时有一个发布证书,你之前建立了某个证书并且没有使用的话就无法再创建了,先把它撤销或者使用后才可以继续创建新的

  5. KVC与KVO的理解

    KVC与KVO是Objective C的关键概念. Key—Value Coding (KVC) 即是指NSKeyValueCoding,一个非正式的Protocol,提供一种机制间接访问对象的属性. ...

  6. ubuntu 16.04 下载源

    修改适当的更新源 可以使得aptget安装的速度变得快很多 ubuntu的更新源在 /etc/apt/sources.list 修改更新源 sudo vi /etc/apt/sources.list ...

  7. SqlServer排序(null值,和非空值排列顺序)

    项目中遇到一个问题,需要设置序号排序,而该字段中的默认值为空,使用普通排序,空值就会在最前边.可以使用如下语句:   其中 col 为 排序的字段名称. then 0 else 1 代表先空值,后数字 ...

  8. php读取和保存base64编码的图片内容

    <?php header('Content-type:text/html;charset=utf-8'); //读取图片文件,转换成base64编码格式 $image_file = './429 ...

  9. Raising Modulo Numbers(POJ 1995 快速幂)

    Raising Modulo Numbers Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5934   Accepted: ...

  10. 1004 Anagrams by Stack

    考察DFS的应用,用栈描述字符串的变化过程. #include <stdio.h> #include <string.h> int len1,len2; ],str2[],st ...