モジュール java.desktop
パッケージ javax.print

インタフェースDoc

既知のすべての実装クラス:
SimpleDoc

public interface Doc
インタフェースDocは、印刷ジョブのために1つの印刷データを供給するオブジェクトのインタフェースを指定します。 「Doc」は、印刷データの一部を意味する、短く発音しやすい用語です。 クライアントは、インタフェースDocを実装しているオブジェクトをプリント・ジョブに渡します。プリント・ジョブは、そのオブジェクトのメソッドを呼び出して、プリント・データを取得します。 Docインタフェースを使用すると、印刷ジョブを実行できます:
  • 印刷データが利用可能な形式または「docフレーバ」(DocFlavorクラス)を判別する。 docフレーバは、印刷データ形式(MIMEタイプ)および印刷データの送信元オブジェクトの表現クラスを指す。
  • docフレーバの表現クラスのインスタンスである、印刷データの表現オブジェクトを取得する。 取得後に、Print Jobは、表現オブジェクトから実印刷データを取得できる。
  • docの追加特性を指定する、またはdocに適用する処理命令を指定する印刷属性を取得する。 印刷属性は、パッケージjavax.print.attribute内で定義される。 docは、javax.print.attribute.DocAttributeSet内に格納された出力属性を返す。
インタフェースDocの実装における各メソッドは、メソッドが呼び出されるたびに常に同じオブジェクトを返すことができます。 これは、Print Jobまたはdocオブジェクトの他の呼出し側の場合、呼出し側が印刷データを取得する際、その印刷データ表現オブジェクトが、ストリームである印刷データ表現オブジェクトなどの印刷データを「消費する」ことを示します。 Print JobがgetPrintData()を呼び出してストリームを取得した後でgetPrintData()を呼び出すと、すでに読込み中の同じストリーム・オブジェクトが返されます。印刷データをもう一度最初から読み込む新規ストリーム・オブジェクトが返されることはありません このような動作を実行するdocオブジェクトを指定すると、docオブジェクトの実装を簡略化できます。これは、特定のdocが1つのPrint Job (複数の異なるPrint Jobではなく)に印刷データを送信することを考えると、理にかなっています。 (同一の印刷データを複数の異なるPrint Jobに送信する場合は、1つの印刷データ・ソースの最上位に複数の異なるdocオブジェクトを作成する必要があります)。

インタフェースDocは、かなりの実装の柔軟性を提供します。 docオブジェクトの構築時には、印刷データがすでに存在している場合があります。 この場合、docのメソッドにより返されるオブジェクトをdocのコンストラクタに提供し、前もってdoc内に格納しておくことで、呼出し時にそのまま返すだけで済みます。 また、docオブジェクトの構築時に印刷データがまだ存在していない場合もあります。 この場合、docオブジェクトは「レイジー」実装を提供できます。Print JobがgetPrintData()メソッドを呼び出した場合のみ、「レイジー」実装は印刷データ表現オブジェクト(や印刷データ)を生成します。

1つのdocに同時アクセス可能なクライアント・スレッド数に制限はありません。 したがって、インタフェースDocのすべての実装は、複数のスレッド・セーフであるように設計する必要があります。

ただし、Docから取得した印刷データの消費者は1人だけです。

Doc getReaderForText()またはgetStreamForBytes()メソッドを呼び出してクライアントからストリームから印刷データを取得した場合、または印刷データソースがすでにInputStreamまたはReaderである場合、印刷サービスはすべてのジョブ完了条件でクライアントのこれらのストリームを常に閉じる必要があります。 次の点に注意してください。 印刷データ自体がストリームの場合、サービスは常に印刷データを閉じます。 印刷データが別の方法でストリームとして要求可能で、終了前にストリームを取得済みの場合、サービスはストリームを閉じるだけです。 つまり、プリント・サービスがストリームとしてデータをリクエストしているとは限らないため、サービスに依存しているDoc実装者がサービスからのリクエストにレスポンスしてそのようなストリームを作成する必要があるという意味で、。

  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このdocオブジェクトの印刷属性セットを取得します。
    このdocオブジェクトが印刷データの一部を提供するdocフレーバを判別します。
    このdocオブジェクトの印刷データの一部を含む印刷データ表現オブジェクトを、サポートするdocフレーバに対応する形式で取得します。
    このdocから文字印刷データを抽出するためのリーダーを取得します。
    このdocからバイト印刷データを抽出するための入力ストリームを取得します。
  • メソッドの詳細

    • getDocFlavor

      DocFlavor getDocFlavor()
      このdocオブジェクトが印刷データの一部を提供するdocフレーバを判別します。
      戻り値:
      doc flavor (ドキュメント・フレーバ)
    • getPrintData

      Object getPrintData() throws IOException
      このdocオブジェクトの印刷データの一部を含む印刷データ表現オブジェクトを、サポートするdocフレーバに対応する形式で取得します。 getPrintData()メソッドは、名前がbygetDocFlavor().getRepresentationClassName()である表現クラスのインスタンスを返し、戻り値はクラスObjectからその表現クラスにキャストできます。
      戻り値:
      印刷データ表現オブジェクト
      例外:
      IOException - 表現クラスがストリームであり、ストリームの作成中にI/Oエラーが発生した場合
    • getAttributes

      DocAttributeSet getAttributes()
      このdocオブジェクトの印刷属性セットを取得します。 返される属性セットに特定の属性Xのインスタンスが含まれる場合、プリンタはその属性値をこのdocに使用して、ジョブの属性セット内の属性Xの値をすべてオーバーライドする必要があります。 返された属性セットに特定の属性Xのインスタンスが含まれていない場合、またはnullが返された場合、プリンタはX,属性の値を取得するためにジョブ属性セットを調べ、見つからなければ実装依存デフォルト値。 返された属性セットは変更できません。
      戻り値:
      このdocの印刷属性の変更不可能なセット、またはジョブ属性セットからすべての属性値を取得するnull
    • getReaderForText

      Reader getReaderForText() throws IOException
      このdocから文字印刷データを抽出するためのリーダーを取得します。 DocFlavorが次の印刷データ表現クラスのどれかを保持する場合、Doc実装がこのメソッドをサポートする必要があります。保持しない場合、nullが返されます。
      • char[]
      • java.lang.String
      • java.io.Reader
      docの印刷データ表現オブジェクトを使用して、印刷データを文字のストリームとして読み取るためのReaderを構築して返します。 ただし、印刷データ表現オブジェクト自体がReader,の場合、印刷データ表現オブジェクトが返されるだけです。
      戻り値:
      この文書から印刷データ文字を読み取るリーダー。 このdocが上記の基準を満たさないためにリーダーを使用できない場合、nullが返される。
      例外:
      IOException - リーダーの作成時に入出力エラーが発生した場合
    • getStreamForBytes

      InputStream getStreamForBytes() throws IOException
      このdocからバイト印刷データを抽出するための入力ストリームを取得します。 DocFlavorが次の印刷データ表現クラスのどれかを保持する場合、Doc実装がこのメソッドをサポートする必要があります。保持しない場合、nullが返されます。
      • byte[]
      • java.io.InputStream
      このdocの印刷データ表現オブジェクトの取得後に、印刷データ表現オブジェクトから印刷データをバイト・ストリームとして読み取るための入力ストリームが作成され、返されます。 ただし、印刷データ表現オブジェクト自体が入力ストリームの場合は、印刷データ表現オブジェクトが返されるだけです。
      戻り値:
      このドキュメントから印刷データ・バイトを読み込むための入力ストリーム。 このdocが上記の基準を満たさないために入力ストリームを使用できない場合、nullが返される。
      例外:
      IOException - 入力ストリームの作成中に入出力エラーが発生した場合