科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用JPS在所有Java平台上进行打印

用JPS在所有Java平台上进行打印

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

作者:builder.com.cn 2007年1月23日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
找到你希望使用的打印服务后,你需要建立一个打印工作。(稍后,你将给这个工作发送输出信号。)你可以使用查找(lookup)返回的PrintService,通过它的createPrintJob()方法建立打印工作:

PrintService printService =

PrintServiceLookup.lookupDefaultPrintService();

DocPrintJob job = printService.createPrintJob();

一旦你指定了服务,你还必须指定你打印的文档的格式。DocFlavor类用来确定你希望打印的对象的多用途网际邮件扩充协议(MIME)类型。MIME类型说明应当如何解释电子数据。当你使用电子邮件和附件时,你可能遇到过MIME类型,但MIME规范描述了一种确定数据形式的更常用机制。

DocFlavor有几个子类,它们可以分成三个MIME类型子集:面向字节集(byte-oriented)、面向字符集(character-oriented)和面向服务集(service-oriented)。每种风格类型支持它自己的一组MIME类型。这些类型再次作为DocFlavor子类的内部类进行定义(DocFlavor子类也是内部类,因此它们是内部类的内部类)。

  • Byte-oriented风格包括GIF、JPEG、PDF、PNG、POSTSCRIPT、TEXT_HTML_UTF_8等。
  • Character-oriented流仅为以下两种格式中的一种:TEXT_HTML和TEXT_PLAIN。
  • Service-oriented流可为PAGEABLE、PRINTABLE或RENDERABLE_IMAGE。

例如,要打印一幅PNG图片,可以这样进行配置:

DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;

你还可以指定属性,说明你希望如何打印一份文档。这些属性包括:份数、打印哪一页、以及文档图片类型(例如,山水画或肖像)。要指定属性,你需要使用下面两个类中的一个:

  • DocAttributeSet指定一个单独文档的特性。
  • PrintRequestAttributeSet指定一个单独打印工作的特性。

下面的例子说明如何打印一个对象,并打印两份:

?PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

?pras.add(new Copies(2));

你可以查看javax.print.attribute包中的有效属性完整列表。

Doc界面为打印工作提供数据。界面的执行程序为SimpleDoc类。用一个单独的构造器,你以提供的内容为第一个参数,风格为第二个参数,属性为第三个参数。内容以对象的形式接受,因此你必须在实际数据中补充一个适当的对象类型。如果你指定一个DocFlavor.INPUT_STREAM风格,那么数据将由它的InputStream确定。如果你的风格为DocFlavor.BYTE_ARRAY,那么数据将为一个字节序列(byte [])。

要从文件中打印一幅PNG图片,使用下列代码:

DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;

?String filename = ...;

?FileInputStream fis = new FileInputSteam(filename);

?DocAttributeSet das = new HashDocAttributeSet();

?Doc doc = new SimpleDoc(fis, flavor, das);

最后,你可以使用DocPrintJob对象的print()方法进行打印,我已经从PrintService中将它找回,如上:

job. print(doc, pras);

通过调用print(),你触发打印机制,将打印内容以一个独立线程的形式送交打印服务。

欲了解更多在J2SE平台上进行打印的信息,请访问Sun Developer Network

Peter V. Mikhalenko是一名通过Sun认证的专家,现在任德意志银行商业顾问。

责任编辑:德东

查看本文国际来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章