javax.print、javax.print.attribute、javax.print.attribute.standardおよびjavax.print.eventの4つのパッケージで構成されます。javax.printパッケージはAPIのメイン・パッケージです。 これには、次の機能に使用するクラスおよびインタフェースが組み込まれています。 
PrintServiceLookupの静的メソッドを起動して、アプリケーションの印刷リクエストを満たす機能を持つ印刷サービスを見つけます。 たとえば、両面印刷のドキュメントを印刷する場合、アプリケーションは最初に、両面印刷対応のプリンタを検索する必要があります。 
 PrintServiceインタフェースの実装は、PrintServiceLookupの実装から返される可能性のある実際のプリンタを表します。 PrintServiceを問い合せて、印刷サービスのサポートされている属性を返す多数のメソッドのいずれかを起動することで、その機能を判断できます。 「文書の印刷およびストリーミング」の章の「サービスの検索」セクションでは、PrintServiceおよびPrintServiceLookupの使用方法について説明します。 
 JDKには、標準プラットフォーム・プリンタを検出するためのPrintServiceLookup実装が含まれています。 印刷サービス・プロバイダは、IPPプリンタやJINIプリンタなど、その他の種類のプリンタを検索するために、PrintServiceLookupの実装を作成できます。 印刷サービス・プロバイダは、SPI JARファイル仕様を使用して、これらのPrintServiceLookup実装を動的にインストールできます。 
アプリケーションは、データをプリンタに送信するのではなく、StreamPrintServiceを使用して出力ストリームにデータを出力することもできます。これにより、アプリケーションはデータを異なる形式に変換できます。 StreamPrintServiceを取得するために、アプリケーションはStreamPrintServiceFactory抽象クラスのルックアップ・メソッドを使用します。 このクラスは、印刷サービスも検出するという点で、PrintServiceLookupクラスのクラスと似ています。 「文書の印刷およびストリーミング」の章では、StreamPrintServiceFactoryおよびStreamPrintServiceの使用方法について説明します。 StreamPrintServiceを使用して、2Dグラフィックを出力ストリームに送信することもできます。 詳細は、「2Dグラフィックスの印刷とストリーム配信」を参照してください。 
DocFlavorクラスは、JPEGやPostScriptなどの印刷データ形式を表します。 DocFlavorオブジェクトは、書式を説明するMIMEタイプと、ドキュメントがサービスに配信される方法を示す表現クラス名(java.io.InputStreamなど)で構成されます。 便宜上、JPS APIには、共通データ形式を表す事前定義済のDocFlavorオブジェクトも含まれています。 DocFlavorオブジェクトの使用方法の詳細は、「ドキュメント・タイプの指定」の章を参照してください。printメソッドを提供するDocPrintJobクラスによって表されます。 printをコールする前に、Docオブジェクトを作成して、javax.print.attributeおよびjavax.print.attribute.standardパッケージで定義されている印刷データおよび印刷リクエスト属性をカプセル化します。 「文書の印刷およびストリーミング」の章では、DocおよびDocPrintJobの使用方法について説明します。 Java印刷サービスを使用して2Dグラフィックスを出力するアプリケーションは、PrinterJobクラスまたはDocPrintJobクラスのいずれかを使用できます。 Java印刷サービスを使用して2Dグラフィックスを印刷する方法については、「2Dグラフィックスの印刷とストリーム配信」の章を参照してください。 
 javax.print.attributeおよびjavax.print.attribute.standardパッケージは、印刷サービスの機能、ドキュメントの特性、ドキュメントまたは印刷ジョブ全体を処理するための指示、または印刷ジョブまたはプリンタの状態を記述する印刷属性を定義します。
 javax.print.attributeパッケージは、属性型、および属性型をセットにまとめる方法を記述します。 Attributeインタフェースは、すべての属性のスーパー・インタフェースです。 javax.print.attributeパッケージには、5種類の属性を定義するクラスとインタフェースが含まれており、それぞれが印刷プロセスの1つの機能について説明します。 たとえば、PrintRequestAttributeインタフェースは、印刷ジョブ(印刷するコピー数を含む)の特性を記述するためにクライアントが使用する属性を定義します。 
 javax.print.attribute.standardパッケージは、APIでサポートされているすべての標準属性を列挙します。そのほとんどは、IPP仕様で指定された属性の実装です。 詳細については、属性APIを参照してください。 
javax.print.eventパッケージには、アプリケーションが印刷ジョブおよび印刷サービスのイベントに登録できるようにするクラスが含まれています。 印刷ジョブのイベントの登録の詳細は、「イベントの登録」のセクションを参照してください。