java print 包_javax.print

提供Java™打印服务API的主要类和接口。

Java Print Service API使客户端和服务器应用程序能够:

根据其功能发现并选择打印服务

指定打印数据的格式

将打印作业提交给支持要打印的文档类型的服务。

打印服务发现

应用程序调用抽象类PrintServiceLookup的静态方法来定位具有满足应用程序打印请求的功能的打印服务。

例如,要打印双面文档,应用程序首先需要找到具有双面打印功能的打印机。

JDK包括可以定位标准平台打印机的PrintServiceLookup实现。 要找到其他类型的打印机,例如IPP打印机或JINI打印机,打印服务提供商可以编写PrintServiceLookup实现。 打印服务提供商可以使用ServiceLoader工具动态安装这些PrintServiceLookup实现。

属性定义

javax.print.attribute包描述了属性的类型以及如何将它们收集到集合中。 javax.print.attribute.standard程序包枚举了API支持的所有标准属性,其中大多数是2000年9月IETF规范RFC 2911 Internet Printing Protocol, 1.1: Model and Semantics中指定的属性的实现javax.print.attribute.standard指定的属性包括常用功能,例如:分辨率,副本,媒体大小,作业优先级和页面范围。

文件类型规格

DocFlavor类表示打印数据格式,例如JPEG或PostScript。

DocFlavor对象由描述格式的MIME类型和指示文档如何传递到打印机或输出流的文档表示类名组成。

应用程序使用DocFlavor和属性集来查找可以打印DocFlavor指定的文档类型并具有属性集指定的功能的打印机。

使用API

使用Java Print Service API的典型应用程序执行以下步骤来处理打印请求:

选择DocFlavor 。

创建一组属性。

找到可以处理DocFlavor和属性集指定的打印请求的打印服务。

创建封装DocFlavor的Doc对象和实际打印数据,可以采用多种形式,包括:Postscript文件,JPEG图像, URL或纯文本。

从打印服务获取打印作业,由DocPrintJob表示。

调用打印作业的打印方法。

下面的代码示例演示了Java Print Service API的典型用法:找到可以在A4纸上打印5张Postscript文档双面副本的打印机,从返回的打印服务之一创建打印作业,然后调用print。

FileInputStream psStream;

try {

psStream = new FileInputStream("file.ps");

} catch (FileNotFoundException ffne) {

}

if (psStream == null) {

return;

}

DocFlavor psInFormat = DocFlavor.INPUT_STREAM.POSTSCRIPT;

Doc myDoc = new SimpleDoc(psStream, psInFormat, null);

PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

aset.add(new Copies(5));

aset.add(MediaSizeName.ISO_A4);

aset.add(Sides.DUPLEX);

PrintService[] services =

PrintServiceLookup.lookupPrintServices(psInFormat, aset);

if (services.length > 0) {

DocPrintJob job = services[0].createPrintJob();

try {

job.print(myDoc, aset);

} catch (PrintException pe) {}

}

请注意:在javax.print API中,方法的null引用参数不正确,除非在方法上明确记录为具有有意义的解释。 相反的用法是不正确的编码,并且可能立即或稍后导致运行时异常。 IllegalArgumentException和NullPointerException是此类情况的典型和可接受的运行时异常的示例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值