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

インタフェースPrintable


public interface Printable
Printableインタフェースは、ページを描画する印刷システムによって呼び出される、現在のページ・ペインタのprintメソッドによって実装されます。 Pageableを構築する場合は、PageFormatのインスタンスと、このインタフェースを実装するインスタンスのペアを使用して各ページを記述します。 Printableを実装するインスタンスは、ページのグラフィックを印刷するために呼び出されます。

PrinterJobPrintable(..)を設定できます。 その後、クライアントがPrinterJob.print(..)を呼び出して印刷をトリガーすると、

すべてのページが印刷されるまで、制御が印刷システムに渡されます。 これはドキュメントのすべてのページが印刷されるまで、Printable.print(..)を呼び出すことによって実行します。 Printableインタフェースを使用すると、印刷システムによって要求されればいつでも、ページの内容が描画されます。

Printable.print(..)のパラメータには、ページに収める内容の計算に必要な、ページの印刷可能領域を示すPageFormat、および要求されたページの0を基準にした印刷ストリーム・インデックスを指定するページ・インデックスがあります。

正しく印刷するため、次の点に注意する必要があります。

  • 印刷システムが複数回ページを要求することがあります。 そのたびに等しいPageFormatパラメータが指定されます。
  • 印刷システムは単調に増加していくページ・インデックスを使用してPrintable.print(..)を呼び出します。ただし、上記のようにPrintableは、ページ範囲がクライアント、または印刷ダイアログを通じてユーザーによって指定されている場合に、ページ・インデックスの複数の呼出しを予想し、ページ・インデックスがスキップされている可能性があることを予想する必要があります。
  • 複数の照合コピーのドキュメントが要求され、プリンタがネイティブにこれをサポートできない場合、ドキュメントは複数回描画されることがあります。 最小の印刷ストリーム・ページ・インデックス・ページから各コピーの印刷が開始されます。
  • 複数の照合コピーのドキュメント全体の再描画を除いて、ページ・インデックス順の増加は、クライアントがページ区切り位置を計算する必要がある場合に、ページNが要求された場合、N未満のページに関するすべての状態を破棄し、ページNの状態を最新にしても構わないことを意味します。 「状態」は通常、ページの開始に対応するドキュメント内の計算された位置にすぎません。
  • 印刷システムによって呼び出された場合、Printableは指定されたPageFormatパラメータとページ・インデックスを検査し、受け取る必要があります。 描画されるページの書式は、pageFormatで指定します。 そのため、ページのサイズ、印刷方向、イメージング可能領域はすでに決定していて、描画はこのイメージング可能領域内で行われる必要があります。 これは、正しく印刷するために重要であり、クライアントが指定されたページに属する内容を追跡する役割を持つことを暗黙的に示しています。
  • クライアントが指定したPageableからPrintableを取得した場合、クライアントはページ・インデックスごとに異なるPageFormatsを指定することができます。 ページ区切りの計算ではこれを考慮する必要があります。

関連項目:
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    pageIndexが大き過ぎるため要求されたページが存在しないことを通知するためにprintメソッドによって返されます。
    static final int
    要求ページが描画されたことを通知するためにprint(Graphics, PageFormat, int)から返されます。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    int
    print(Graphics graphics, PageFormat pageFormat, int pageIndex)
    指定されたインデックスにあるページを、指定された書式で、指定されたGraphicsコンテキストに印刷します。
  • フィールド詳細

    • PAGE_EXISTS

      static final int PAGE_EXISTS
      要求ページが描画されたことを通知するためにprint(Graphics, PageFormat, int)から返されます。
      関連項目:
    • NO_SUCH_PAGE

      static final int NO_SUCH_PAGE
      pageIndexが大き過ぎるため要求されたページが存在しないことを通知するためにprintメソッドによって返されます。
      関連項目:
  • メソッドの詳細

    • print

      int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException
      指定されたインデックスにあるページを、指定された書式で、指定されたGraphicsコンテキストに印刷します。 PrinterJobPrintableインタフェースを呼び出して、graphicsで指定されたコンテキストにページが描画されるように要求します。 描画されるページの書式は、pageFormatで指定します。 pageIndexでは、描画されるページのゼロから始まるインデックスを指定します。 指定されたページが存在しない場合、このメソッドはNO_SUCH_PAGEを返します。存在する場合は、PAGE_EXISTSが返されます。 Graphicsクラスまたはサブクラスは、PrinterGraphicsインタフェースを実装して追加情報を提供します。 Printableオブジェクトが印刷ジョブを中断した場合は、PrinterExceptionがスローされます。
      パラメータ:
      graphics - ページが描画されるコンテキスト
      pageFormat - 描画されるページのサイズと印刷方向
      pageIndex - 描画されるページのゼロから始まるインデックス
      戻り値:
      ページの描画に成功した場合はPAGE_EXISTS、pageIndexで指定されたページが存在しない場合はNO_SUCH_PAGE。
      例外:
      PrinterException - 印刷が中断された場合。