Javax.print

本文介绍如何使用JavaPrintServiceAPI处理打印请求,包括选择DocFlavor、创建属性集、找到合适的PrintService、创建Doc对象及调用PrintJob的print方法等步骤。提供了具体的代码示例,演示了打印Postscript文档的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用 API
典型的应用程序使用 Java Print Service API 执行以下步骤来处理打印请求:
1.选择一个 DocFlavor。
2.创建一个属性集。
3.找到一个可处理由 DocFlavor 和属性集所指定的打印请求的 PrintService。
4.创建一个 Doc 对象,该对象封装 DocFlavor 和实际的打印数据,这些打印数据可采用很多形式,包括:Postscript 文件、JPEG 图像、URL 或纯文本。
5.从 PrintService 获得一个由 DocPrintJob 表示的 PrintJob。
调用 PrintJob 的 print 方法。

以下代码示例说明了 Java Print Service API 的典型用法:找到可在 A4 大小的纸张上打印 5 份 Postscript 文档双面副本的打印机、根据某个返回的 PrintService 创建 PrintJob 并调用 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(MediaSize.A4);
aset.add(Sides.DUPLEX);

PrintService[] services = PrintServiceLookup.lookupPrintService(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 是典型的异常示例,并且是这种情况可接受的运行时异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值