java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

javax.print
接口 Doc

所有已知实现类:
SimpleDoc

public interface Doc

接口 Doc 指定某个对象的接口,该接口为 PrintJob 提供部分打印数据。"Doc" 是一个简短、易于发音的术语,指“部分打印数据”。客户端向 PrintJob 传递一个实现接口 Doc 的对象,PrintJob 则在该对象上调用方法来获得打印数据。Doc 接口允许 PrintJob:

  • 确定所提供的打印数据的格式,或 "doc flavor"(类 DocFlavor)。doc flavor 指定了打印数据格式(MIME 类型)和提供打印数据的对象的表示形式类。

  • 获得打印数据表示形式对象,它是 doc flavor 表示形式类的实例。然后 Print Job 可从该表示形式对象获得实际的打印数据。

  • 获得各种打印属性,这些属性指定该 doc 的其他特征,或者指定用于该 doc 的处理指令。打印属性在 javax.print.attribute 包中定义。doc 返回其存储在 javax.print.attribute.DocAttributeSet 中的打印属性。

每次调用接口 Doc 实现中的方法时,都允许该方法返回相同的对象。对于 Print Job 或 doc 对象的其他调用方也是这样,其中,当调用方获得打印数据时,其打印数据表示形式对象“使用”该打印数据,例如作为流的打印数据表示形式对象。一旦 PrintJob 已经调用了 getPrintData() 并且获得了该流,则对 getPrintData() 的所有其他调用都返回相同的流对象(对它的读取可能已经进行),而不是 从头开始重新读取打印数据的新流对象。指定 doc 对象具有此行为可简化 doc 对象的实现,根据 doc 只向一个 PrintJob 传送打印数据,而不是向多个 PrintJob 传送打印数据可以证明。(要向多个不同的 PrintJob 传送相同的打印数据,必须在同一打印数据源上创建多个不同的 doc 对象。)

接口 Doc 提供了极佳的实现灵活性。构造 doc 对象时,打印数据可能已经存在。在这种情况下,可将 doc 的方法所返回的对象提供给该 doc 的构造方法、提前存储在该 doc 中,以及只是在调用时返回该对象。另外,构造 doc 对象时,打印数据可能不存在。在这种情况下,doc 对象可能延迟提供一个实现,该实现仅在 PrintJob 为它调用方法(当 PrintJob 调用 getPrintData() 方法)时才生成打印数据表示形式对象(和/或打印数据)。

对于并发访问同一个 doc 的客户端线程数目没有限制。因此,接口 Doc 的所有实现必须设计为多线程安全的。

但是对于从 Doc 所获得的打印数据而言,只能有一个使用者。

如果从客户端获得作为流的打印数据(通过调用 Doc 的 getReaderForText()getStreamForBytes() 方法),或者因为打印数据源已经是一个 InputStream 或 Reader,则 PrintService 在所有作业完成的情况下,始终应该关闭客户端的这些流。注意以下警告。如果打印数据本身是一个流,则 PrintService 总是关闭它。如果打印数据是可以以流形式请求的其他内容,则 PrintService 仅在其终止前已获得流的情况下才关闭该流。也就是说,仅仅因为 PrintService 可能请求流形式的数据并不意味着(也不暗含着),这些依赖 PrintService 来关闭它们的 Doc 实现程序应该只为响应服务的请求才创建这种流。



方法摘要
 DocAttributeSet getAttributes()
          获取此 doc 对象的打印属性集。
 DocFlavor getDocFlavor()
          确定此 doc 对象提供其部分打印数据所用的 DocFlavor。
 Object getPrintData()
          获得打印数据表示形式对象,该对象包含此 doc 对象的部分打印数据,其格式对应于受支持的 DocFlavor。
 Reader getReaderForText()
          获得一个从此 doc 中提取字符打印数据的 reader。
 InputStream getStreamForBytes()
          获得一个从此 doc 中提取 byte 打印数据的输入流。
 

方法详细信息

getDocFlavor

DocFlavor getDocFlavor()
确定此 doc 对象提供其部分打印数据所用的 DocFlavor。

返回:
Doc flavor.

getPrintData

Object getPrintData()
                    throws IOException
获得打印数据表示形式对象,该对象包含此 doc 对象的部分打印数据,其格式对应于受支持的 DocFlavor。getPrintData() 方法返回一个表示形式类的实例,其名称由 getDocFlavor()getRepresentationClassName() 给定,可将返回值从类 Object 强制转换为该表示形式类。

返回:
打印数据表示形式对象。
抛出:
IOException - 如果表示形式类是一个流且在构造该流时存在 I/O 错误。

getAttributes

DocAttributeSet getAttributes()
获取此 doc 对象的打印属性集。如果返回的属性集包括特定属性 X 的实例,则打印机必须为此 doc 使用该属性值,该值覆盖作业属性集中属性 X 的所有值。如果返回的属性集不包括特定属性 X 的实例,或者返回 null,则打印机必须参考该作业的属性集来获得属性 X 的值,如果在该集合中未找到该属性值,则打印机必须使用一个与实现相关的默认值。返回的属性集是不可修改的。

返回:
此 doc 不可修改的打印属性集,或者为 null,以从该作业的属性集中获得所有属性值。

getReaderForText

Reader getReaderForText()
                        throws IOException
获得一个从此 doc 中提取字符打印数据的 reader。如果 DocFlavor 具有以下打印数据表示形式类之一,则需要 Doc 实现支持此方法,否则返回 null:
  • char[]
  • java.lang.String
  • java.io.Reader
为了从打印数据表示形式对象中以字符流的形式读取打印数据,使用 doc 的打印数据表示形式对象来构造并返回一个 Reader。但是,如果打印数据表示形式对象本身就是一个 Reader,则只是返回该打印数据表示形式对象。

返回:
从此 doc 中读取打印数据字符的 Reader。如果因为此 doc 不符合上述标准而无法提供 reader,则返回 null。
抛出:
IOException - 如果创建 reader 时存在 I/O 错误。

getStreamForBytes

InputStream getStreamForBytes()
                              throws IOException
获得一个从此 doc 中提取 byte 打印数据的输入流。如果 DocFlavor 具有以下打印数据表示形式类之一,则需要 Doc 实现支持此方法,否则返回 null:
  • byte[]
  • java.io.InputStream
获得此 doc 的打印数据表示形式对象,然后为了从打印数据表示形式对象中以 byte 流的形式读取打印数据,需要创建并返回一个输入流。但是,如果打印数据表示形式对象本身就是一个输入流,则只是返回该打印数据表示形式对象。

返回:
从此 doc 中读取打印数据 byte 的输入流。如果因为此 doc 不符合上述标准而无法提供输入流,则返回 null。
抛出:
IOException - 如果创建输入流时存在 I/O 错误。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策