javax.print

接口
异常
所有已知子接口:
CancelablePrintJob, MultiDocPrintJob

public interface DocPrintJob

此接口表示了一个可使用作业属性集打印指定文档的打印作业。可从 PrintService 获得一个实现了此接口的对象。


方法摘要
 void addPrintJobAttributeListener(PrintJobAttributeListener listener, PrintJobAttributeSet attributes)
          为指定属性中的更改注册一个侦听器。
 void addPrintJobListener(PrintJobListener listener)
          为此 PrintJob 执行期间所出现的事件注册一个侦听器。
 PrintJobAttributeSet getAttributes()
          获取此 PrintJob 的打印属性集。
 PrintService getPrintService()
          确定此 PrintJob 对象所绑定到的 PrintService 对象。
 void print(Doc doc, PrintRequestAttributeSet attributes)
          使用指定的作业属性打印文档。
 void removePrintJobAttributeListener(PrintJobAttributeListener listener)
          移除此 PrintJob 的属性侦听器。
 void removePrintJobListener(PrintJobListener listener)
          移除此 PrintJob 的侦听器。
 

方法详细信息

getPrintService

PrintService getPrintService()
确定此 PrintJob 对象所绑定到的 PrintService 对象。

返回:
PrintService 对象。

getAttributes

PrintJobAttributeSet getAttributes()
获取此 PrintJob 的打印属性集。返回的属性集对象是不可修改的。返回的属性集对象是调用 getAttributes() 方法时此 PrintJob 的属性集的一个“快照”;也就是说,如果以后此 PrintJob 属性集的内容更改了,则不更新返回的属性集对象的内容。要检测属性值的更改,可再次调用 getAttributes() 并将新的属性集与以前的属性集进行比较;或者可为 PrintJob 事件注册一个侦听器。返回值可以是一个空集合,但不应为 null。

返回:
PrintJob 属性

addPrintJobListener

void addPrintJobListener(PrintJobListener listener)
为此 PrintJob 执行期间所出现的事件注册一个侦听器。如果 listener 为 null,则不会抛出异常,并且不执行任何操作。如果已注册了侦听器,则会再次注册它。

参数:
listener - 实现侦听器接口的对象
另请参见:
removePrintJobListener(javax.print.event.PrintJobListener)

removePrintJobListener

void removePrintJobListener(PrintJobListener listener)
移除此 PrintJob 的侦听器。如果参数所指定的侦听器尚未添加到此组件,则此方法不起作用,也不抛出异常。如果 listener 为 null,则不会抛出异常,并且不执行任何操作。如果多次注册了某个侦听器,则只移除其中一个注册记录。

参数:
listener - 实现侦听器接口的对象
另请参见:
addPrintJobListener(javax.print.event.PrintJobListener)

addPrintJobAttributeListener

void addPrintJobAttributeListener(PrintJobAttributeListener listener,
                                  PrintJobAttributeSet attributes)
为指定属性中的更改注册一个侦听器。如果 listener 为 null,则不会抛出异常,并且不执行任何操作。要确定此作业可能报告的属性更新,客户端可以调用 getAttributes() 并标识所关注的和可能报告给侦听器的子集。预期更新有关指定作业属性更改的客户端应该验证该属性是否在该属性集中,但是只有确实更改了属性并且作业检测到该更改时才会进行更新。另外更新还可能受到作业批处理的影响。为了最大限度地降低 PrintJob 处理中的开销,建议仅对可能更改的属性子集进行侦听。如果指定的属性集是空集合,则不向侦听器报告任何属性更新。如果属性集为 null,这就意味着要侦听该作业支持的所有动态属性。如果某个作业无法报告任意属性更新,那么这就可能导致没有更新通知。 如果已注册了侦听器,则会再次注册它。

参数:
listener - 实现侦听器接口的对象
attributes - 要侦听的属性,如果为 null 则表示由作业确定的所有可能更改的属性。
另请参见:
removePrintJobAttributeListener(javax.print.event.PrintJobAttributeListener)

removePrintJobAttributeListener

void removePrintJobAttributeListener(PrintJobAttributeListener listener)
移除此 PrintJob 的属性侦听器。如果参数所指定的侦听器尚未添加到此组件,则此方法不起作用,也不抛出异常。如果 listener 为 null,则不会抛出异常,并且不执行任何操作。如果多次注册了某个侦听器,即使是为不同的属性集注册,也不保证会移除哪个侦听器。

参数:
listener - 实现侦听器接口的对象
另请参见:
addPrintJobAttributeListener(javax.print.event.PrintJobAttributeListener, javax.print.attribute.PrintJobAttributeSet)

print

void print(Doc doc,
           PrintRequestAttributeSet attributes)
           throws PrintException
使用指定的作业属性打印文档。对于给定的 PrintJob,只应该调用此方法一次。再次调用该方法不会导致将新的作业后台打印到打印机。服务实现将定义用于服务中断和恢复的策略。当 print 方法返回时,打印工作可能尚未完成,因为可在不同的线程中异步进行打印工作。希望监视打印成功与否的应用程序客户端应该注册 PrintJobListener。

PrintService 实现应该关闭它们从客户端 doc 所获取的所有打印数据流(即 Reader 或 InputStream 实现)。可靠的客户端可能还希望对此进行验证。如果无法打印 DocFlavor,则始终会生成异常。

参数:
doc - 要打印的文档。如果必须是一个 flavor,则此 PrintJob 必须支持它。
attributes - 应用到此 PrintJob 的作业属性。如果此参数为 null,则使用默认属性。
抛出:
PrintException - 该异常可能会额外实现一个接口,该接口更精确地描述了下列异常的原因
  • FlavorException。如果该文档具有此 PrintJob 不支持的 flavor。
  • AttributeException。如果应用到此 PrintJob 的一个或多个属性无效。