Module java.desktop
Package javax.print

Class SimpleDoc

java.lang.Object
javax.print.SimpleDoc
所有已实现的接口:
Doc

public final class SimpleDoc extends Object implements Doc
这个类是接口Doc的一个实现,可以在许多常见的打印请求中使用。它可以处理DocFlavor类中定义的所有当前定义的“预定义”文档格式的静态变量。

特别是,这个类按照Doc规范实现了以下某些必需的语义:

  • 如果请求和适当的话,为服务构造一个流。
  • 确保每次调用方法时返回相同的对象。
  • 确保多个线程可以访问Doc
  • 执行一些验证,确保数据与文档格式匹配。
希望在其他作业中重用文档对象或需要MultiDoc的客户端不希望使用这个类。

如果打印数据是一个流,或者打印作业请求数据作为一个流,那么SimpleDoc不会监视服务在数据传输完成或作业终止后是否正确关闭流。客户端可能更喜欢使用自己的文档实现,添加一个监听器来监视作业完成并验证资源(如流)是否被释放(即关闭)。

  • Constructor Details

    • SimpleDoc

      public SimpleDoc(Object printData, DocFlavor flavor, DocAttributeSet attributes)
      使用指定的打印数据、文档格式和文档属性集构造一个SimpleDoc
      参数:
      printData - 打印数据对象
      flavor - DocFlavor对象
      attributes - 一个DocAttributeSet,可以为null
      抛出:
      IllegalArgumentException - 如果flavorprintDatanull,或者printData与指定的文档格式不对应--例如,数据不是作为DocFlavor中指定的表示类型的数据
  • Method Details

    • getDocFlavor

      public DocFlavor getDocFlavor()
      确定此文档对象将以哪种文档格式提供其打印数据。
      指定者:
      getDocFlavor 在接口 Doc
      返回:
      文档格式
    • getAttributes

      public DocAttributeSet getAttributes()
      获取此文档对象的打印属性集。如果返回的属性集包括特定属性X的一个实例,则打印机必须使用该属性值用于此文档,覆盖作业属性集中属性X的任何值。如果返回的属性集不包括特定属性X的一个实例,或者返回null,则打印机必须查阅作业属性集以获取属性X的值,如果在那里找不到,则打印机必须使用一个实现相关的默认值。返回的属性集是不可修改的。
      指定者:
      getAttributes 在接口 Doc
      返回:
      此文档的打印属性的不可修改集合,或者null以从作业属性集中获取所有属性值
    • getPrintData

      public Object getPrintData() throws IOException
      获取包含此文档对象的打印数据片段的打印数据表示对象,其格式对应于支持的文档格式。 getPrintData()方法返回一个由getDocFlavor().getRepresentationClassName()给出名称的表示类的实例,并且返回值可以从Object类转换为该表示类。
      指定者:
      getPrintData 在接口 Doc
      返回:
      打印数据表示对象
      抛出:
      IOException - 如果表示类是一个流并且在构造流时发生I/O错误
    • getReaderForText

      public Reader getReaderForText() throws IOException
      获取用于从此文档中提取字符打印数据的读取器。如果DocFlavor具有以下打印数据表示类之一,则Doc实现需要支持此方法,否则返回null
      • char[]
      • java.lang.String
      • java.io.Reader
      文档的打印数据表示对象用于构造并返回一个用于从打印数据表示对象中以字符流形式读取打印数据的Reader。但是,如果打印数据表示对象本身是一个Reader,则简单地返回打印数据表示对象。
      指定者:
      getReaderForText 在接口 Doc
      返回:
      用于从此文档中读取打印数据字符的Reader。如果无法提供读取器,因为此文档不符合上述标准,则返回null
      抛出:
      IOException - 如果在创建读取器时发生I/O错误
    • getStreamForBytes

      public InputStream getStreamForBytes() throws IOException
      获取用于从此文档中提取字节打印数据的输入流。如果DocFlavor具有以下打印数据表示类之一,则Doc实现需要支持此方法;否则,此方法返回null
      • byte[]
      • java.io.InputStream
      获取文档的打印数据表示对象。然后,为从打印数据表示对象中以字节流形式读取打印数据创建并返回一个输入流。但是,如果打印数据表示对象本身是一个输入流,则简单地返回打印数据表示对象。
      指定者:
      getStreamForBytes 在接口 Doc
      返回:
      用于从此文档中读取打印数据字节的InputStream。如果无法提供输入流,因为此文档不符合上述标准,则返回null
      抛出:
      IOException - 如果在创建输入流时发生I/O错误